On Mon, 2002-03-18 at 14:21, John W. Krahn wrote: > Chas Owens wrote: > > > > I am receiving a strange error on exiting a script: Attempt to free > > unreferenced scalar during global destruction. It only occurs after I > > make a DBI connection and run an SQL statement. I am undefing the > > statement handle and disconnecting the database handle. Does anyone > > have a clue what this might be? > > perldoc perldiag > [snip] > Attempt to free unreferenced scalar > (W internal) Perl went to decrement the reference > count of a scalar to see if it would go to 0, and dis > covered that it had already gone to 0 earlier, and > should have been freed, and in fact, probably was > freed. This could indicate that SvREFCNT_dec() was > called too many times, or that SvREFCNT_inc() was > called too few times, or that the SV was mortalized > when it shouldn't have been, or that memory has been > corrupted. > > > Are you doing "undef $scalar" in your code? If so, don't. You should > _never_ have to use undef in this manner. Use my() to create a lexical > scope and let perl take care it. > > > > John > -- > use Perl; > program > fulfillment
I grepped the source code for undef and only got back these lines. app.pm: $sth = undef; app.pm: $sth = undef; app.pm: local($/) = undef; app.pm: return undef; app.pm: return undef; app.pm: return undef; app.pm: $row = undef; app.pm: return undef; It doesn't look like I am undefing a variable, only assigning undef to them (to free the cursor in two cases, to indicate no error in four cases, and to remove the contents of the variable in one case); however, there are some cases where I say things like: Gnome::MessageBox->new( 'A query is already running', 'warning', 'close' )->show_all; without catching the the object created by Gnome::MessageBox->new. Could these be the culprit? -- Today is Boomtime the 4th day of Discord in the YOLD 3168 Or is it? Missile Address: 33:48:3.521N 84:23:34.786W -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]