in reply to Re^2: "uninitialized value in subroutine exit" warning from CGI.pm
in thread "uninitialized value in subroutine exit" warning from CGI.pm

On subroutine return, any return values are copied. [emphasis mine]

D'oh! Thank you for the enlightenment on a Friday afternoon ;-)

Update: Yep:

$ perl -wMstrict *a = \substr(undef,0); # alias via glob $b = $a; # copy $a = 'x'; # assignment __END__ Use of uninitialized value in scalar assignment at - line 2. Modification of a read-only value attempted at - line 3.

And just like above, on Perls <5.16 that dies with "Modification of a read-only value attempted at - line 1." (instead of line 3). So I should probably call the commit I referenced a bugfix! :-)

Additional updates: Expanded the code example from the original version and added (and edited) the last paragraph.