Hi monks,
I have one question about passing subroutines as arguments in packages.
Here is my simple code for question:
* file: FooConfig.pmpackage FooConfig; use strict; [ constructor and some functions ] sub important_func { my $self = shift; my $arg = shift; my %hash = ( '1' => 'red', '2' => 'blue', '3' => 'green', ) return $hash{ $arg } if $hash{ $arg }; }
* file: Foo.pm
package Foo; use strict; [ constructor and some functions ] sub somesub_foo { my $self = shift; [...] use FooConfig; my $FooConfig = FooConfig->new; my $ref = \&FooConfig->important_func( '1' ); [ do something with this ] }
Result is: Undefined subroutine &Foo::FooConfig->important_func called at /path_somewhere/Foo.pm line 123
Im trying &$FooConfig, \$FooConfig and many other this without success. :(
Valid usage this function: $FooConfig->important_func, but reference return &PackageName:: before and i got this error. What's wrong with this?
Best regards,
In reply to Passing subroutine as argument between packages by Mateusz
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |