Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Re: Method call to tied hash leads to file read error

by blokhead (Monsignor)
on May 28, 2003 at 16:43 UTC ( [id://261365]=note: print w/replies, xml ) Need Help??


in reply to Method call to tied hash leads to file read error

You've just experienced the joy of $_. The problem is that while (<FH>) doesn't local'ize $_. Consider this:

You write:

print $obj2->{$_} for (qw|my_method|);
So now $_ is set to a read-only value. Then eventually from within that call we get to this line:
while (<IN>) {
... which is syntactic sugar for:
while (defined($_ = <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.

In short, put local $_; right above the while (<IN>) line, and things should work fine.

blokhead

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://261365]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others imbibing at the Monastery: (5)
As of 2024-04-19 06:50 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found