Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

unexpected "inner references" error from untie()

by papidave (Pilgrim)
on Feb 17, 2009 at 00:13 UTC ( [id://744245]=perlmeditation: print w/replies, xml ) Need Help??

I've been banging my head on the table with Apache::Session::MySQL today. Consider:

eval { ( my %session, $ok ); $ok = tie( %session, 'Apache::Session::MySQL', undef, ... ); if ( $ok ) { ... do something with %session ... } untie %session; }
This doesn't work from mod_perl, because the untie throws an exception following warning causes my web page to fail:
untie attempted while 1 inner references still exist at foo.pl line 250.
Since I don't use any explicit references to %session, this caught me by surprise. I have since resolved it; can you see the bug?

Updates:
  • clarified failure per note from ysth. Occasionally I use an english-ish idiom instead of a precise technical term.
  • The !! idiom may not be elegant to some, but I find it elegant because it can be read as "dammit," and I was looking for a -dammit flag to work around this failure :)
  • The use of $ok instead of the simple if statement occurred because of some additonal logic that I was doing after the tie, and before the untie. It had been omitted in this sample code.

Replies are listed 'Best First'.
Re: unexpected "inner references" error from untie()
by ysth (Canon) on Feb 17, 2009 at 03:50 UTC
Re: unexpected "inner references" error from untie()
by Anonymous Monk on Feb 17, 2009 at 06:36 UTC
    perldoc -f tied
    ... if( tied %session){ } untie %session;

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others romping around the Monastery: (3)
As of 2024-04-25 23:50 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found