Jetzt habe ich mehrere Packages ("myPackage1", "myPackage2", "myPackage3"...) und alle haben eine Subroutine "evaluate($p1,$p2,$p3)". Die Entscheidung, welches Package ich verwende, hängt von einer Variablen (z.B. $package) ab. Wie bekomme ich denn nun den Aufruf hin?! Die Variante
my $result = eval("$package::evaluate($p1,$p2,$p3)");
klappt leider nicht. Gibt es überhaupt eine Lösung für mein Problem?
Das ginge auch ohne eval:
#!/usr/bin/perl -w
package A;
sub a
{
print "A::a()\n";
}
package B;
sub a
{
print "b::a()\n";
}
use strict;
my $var;
$var = 'A';
&{$var.'::a'}();
$var = 'B';
&{$var.'::a'}();
Struppi.