in reply to Method call to tied hash leads to file read error
You write:
So now $_ is set to a read-only value. Then eventually from within that call we get to this line:print $obj2->{$_} for (qw|my_method|);
... which is syntactic sugar for:while (<IN>) {
You see that this line is assigning to $_ (still containing the read only 'my_method'). while didn't local'ize $_!! This is a common trap, and I know someone has written an extensive writeup about this particular trap among many CPAN modules.while (defined($_ = <IN>)) {
In short, put local $_; right above the while (<IN>) line, and things should work fine.
blokhead
|
|---|