/ Forside / Teknologi / Udvikling / Perl / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Perl
#NavnPoint
bjarneA 141
poul_from 50
soccer 30
Nicknack 14
Tmpj 0
Syntax gymnastik, har packagenavn i en sca~
Fra : Morten Guldager


Dato : 29-10-06 16:14

Hejsa,

Jeg har et package navn i en scalar og vil nu gerne kalde en
funktion i den package.

#!/usr/bin/perl
use strict;
use warnings;

my $p = 'hest';
my $x = $p::s(); # syntax fejl her...
warn "x = $x\n";

package hest;
use strict;
use warnings;

sub s { 1; }

package ged;
use strict;
use warnings;

sub s { 2; }

Men den klager sig over syntaxfejl.

Nogen der lige kan ryste noget brugbart ud af ærmet?

eval løsningen synes ikke er super smuk.


/Morten

 
 
Adam Sjøgren (29-10-2006)
Kommentar
Fra : Adam Sjøgren


Dato : 29-10-06 16:59

On Sun, 29 Oct 2006 15:13:51 GMT, Morten wrote:

> my $x = $p::s(); # syntax fejl her...

Du kan bruge et metode-kald i stedet:

my $x=$p->s(@args);

Så skal du bare huske at s() så får klassenavnet som første argument:

sub s {
my ($class, @args)=@_;

...
}

Måske?


Mvh.

--
"When something is modal, then its interpretation Adam Sjøgren
depends upon the system state, which adds to the asjo@koldfront.dk
mental workload and has been a known source of
difficulty in many situations."

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste