in reply to Argument list item alias-ing

Oooops. Wrong subname..Sorry about that... Anyway, here(ActivePerl 5.8.0, Build 805), neither:
sub subname{ local *_=\$_[0]; s///; } subname("String");
Gives any error message. So..is it a bug?A feature?Another stupid mistake of myself?

Replies are listed 'Best First'.
Re: Re: Argument list item alias-ing
by broquaint (Abbot) on Apr 16, 2003 at 13:40 UTC
    Sounds like a bug to me as I get an error message here
    sub subname { local *_=\$_[0]; s///; } subname("String"); Modification of a read-only value attempted at - line 3.
    This error should occurs because you're 'aliasing' $_ to $_[0], which essentially equates to both pointing to the same scalar value e.g
    sub { print "\$_[0]: ",\$_[0], $/; local *_= \$_[0]; print "\$_: ",*main::_{SCALAR}, $/; s///; }->("foo"); __output__ $_[0]: SCALAR(0x8107ec8) $_: SCALAR(0x8107ec8) Modification of a read-only value attempted at - line 5.

    HTH

    _________
    broquaint