in reply to Mysterious GDBM_File error

What does line 69 of your GDBM_File.pm look like?

I cut/pasted the code sample you gave and it ran for me with no errors or warnings (Perl 5.6.0 on FreeBSD, GDBM_File version 1.03).

- Matt Riffle

PS: You may/may not want to consider using "use strict" in your code. It's generally a good idea, but I'm not going to tell you what to do. :)

Replies are listed 'Best First'.
Re: Re: Mysterious GDBM_File error
by Squiddhartha (Sexton) on Feb 14, 2002 at 00:52 UTC
    Line 69 is in the middle of GDBM_File.pm's AUTOLOAD routine:
    sub AUTOLOAD { my($constname); ($constname = $AUTOLOAD) =~ s/.*:://; my $val = constant($constname, @_ ? $_[0] : 0); if ($! != 0) { if ($! =~ /Invalid/ || $!{EINVAL}) { $AutoLoader::AUTOLOAD = $AUTOLOAD; goto &AutoLoader::AUTOLOAD; } else { Carp::croak("Your vendor has not defined GDBM_File macro $ +constname, used"); } } eval "sub $AUTOLOAD { $val }"; goto &$AUTOLOAD; }
    Line 69 is the one beginning with my $val. I'm familiar with 'use strict' and do indeed use it on my big projects, but this is not my code -- it's an excerpt from the wreq work request system.