For example, if I call the function terraform which is described in both interfaces and the variable $version is 1, then the interface1.pm version of terraform will be used. If version was 2, interface2.pm would be used.If I get you right you want something like this:
Edit:#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();
Note that you have to use the concatenation here, because perl would interpret$interface = "Interface1"; eval "print $interface" . "::foo()"; $interface = "Interface2"; eval "print $interface" . "::foo()";
as a reference to the variable $foo in package Interface1 and that fails.eval "print $interface::foo()";
In reply to Re: Calling same named functions from different modules
by holli
in thread Calling same named functions from different modules
by geckosan
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |