Mateusz has asked for the wisdom of the Perl Monks concerning the following question:
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,
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Passing subroutine as argument between packages
by Eliya (Vicar) on Nov 30, 2011 at 14:26 UTC | |
by Mateusz (Initiate) on Nov 30, 2011 at 18:13 UTC | |
by chromatic (Archbishop) on Nov 30, 2011 at 18:25 UTC | |
by Mateusz (Initiate) on Nov 30, 2011 at 18:43 UTC |