in reply to using a hash of functions
The canonical form of a subroutine invocation is:
update: for more details, check out my Linux magazine column on subroutine references, and an older column from UnixReview.
The braces around the coderef expression can be dropped only when the coderef is in a simple scalar variable. Yours was not. So you'd have to use:$result = & { something_that_returns_coderef } ( @args );
However, as of fairly recent Perls, you can also use an arrow form:& { $functions{$func} }();
This was added by Chip in 5.4 under some urging by me based on a bet I made that I couldn't get a new feature into 5.4 during the gamma golden release phase. I won. {grin}$functions{$func}->();
-- Randal L. Schwartz, Perl hacker
update: for more details, check out my Linux magazine column on subroutine references, and an older column from UnixReview.
|
---|
In Section
Seekers of Perl Wisdom