Hi Monks,
I have a problem with code references. I have a hash with code references as values. Unfortunately, as soon as the script is called those functions are executed instead of just referenced. Here's an example
my $subs = {a=>\&_a}; sub _a{ my $attr = shift; my $obj = SOME::PACKAGE->new($attr); }
The variable $attr is used in SOME::PACKAGE to do a database request. As soon as the script is initialized now it throws an error that $attr in SOME::PACKAGE is undef. This is obvious because I didn't call the function yet (well, apparently I did but didn't want to). Any suggestions how to reference a function like that without calling it when the script is initialized?
Cheers,
Lowry
## Problem solved ###
The lesson for today: know your perl! Problem was in fact that one of the subs of class SOME::PACKAGE was called when initialized. Which of the subs you're asking? The sub "import"! And yes, I wrote SOME::PACKAGE, and no, I didn't know import()
Renaming import() to _import() fixed it.
In reply to Code reference by Lowry76
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |