![]() |
|
Welcome to the Monastery | |
PerlMonks |
Re^2: subroutine refsby blokhead (Monsignor) |
on Nov 30, 2007 at 18:50 UTC ( #654166=note: print w/replies, xml ) | Need Help?? |
I find this very surprising. But I checked it and it apparently works.
Why does this give an error: .. and yet this is ok? (they differ only in the last line) Before seeing this, I would have bet anything that the &{\&{ ... }} operation was absolutely the same as &{...} (barring weird action-at-a-distance caused by tying, overloading, etc). In fact, I'm not sure whether to consider this a bug or not. Indeed, what is \&$name doing other than "using string as a subroutine ref", which is outlawed under strict refs? Yet a similar idea with other kinds of refs doesn't do this. Both of these examples fail under strict refs (in my mind because @{\@{...}} is unconditionally the same thing as @{...} ):
My conclusion is that there is an important distinction between naming a subroutine and invoking it, which is manifested bizarrely by different behaviors in the \&{blah} and &{blah} mechanisms. blokhead
In Section
Seekers of Perl Wisdom
|
|