|
| 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."
| |
|
|