Struppi: Variable im Packagenamen?!

Beitrag lesen

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.