#file Interface1.pm
package Interface1;
sub foo
{
return "I am one!\n";
}
1;
#file Interface2.pm
package Interface2;
sub foo
{
return "I am two!\n";
}
1;
#file script.pl
use strict;
use warnings;
use Interface1;
use Interface2;
my $interface;
$interface = "Interface1";
print $interface->foo();
$interface = "Interface2";
print $interface->foo();
####
$interface = "Interface1";
eval "print $interface" . "::foo()";
$interface = "Interface2";
eval "print $interface" . "::foo()";
####
eval "print $interface::foo()";