Hello! First time poster here, so please be gentle if I transgress.
Consider the following short piece of code:
#!/bin/perl
use GDBM_File;
# File 'voo' created with:
#tie %DBM, GDBM_File, 'voo', &GDBM_WRCREAT, 0644;
#$DBM{'goo'}='moo';
#untie %DBM;
sub DBMopenread {
$DBREFread=tie %DBM, GDBM_File, $_[0], &GDBM_READER, 0644;
}
sub DBMcloseread {
$DBREFread = undef; untie %DBM;
}
&DBMopenread('voo');
#$DBREFread=tie %DBM, GDBM_File, 'voo', &GDBM_READER, 0644;
$m=$DBM{'goo'};
print "$m\n";
&DBMcloseread("voo");
When run with the &DBMopenread call, under both Linux and Solaris, I see (the appropriate version of) this message:
Argument "voo" isn't numeric in subroutine entry at /opt/perl/lib/5.6.
+1/sun4-solaris/GDBM_File.pm line 69.
However, if I comment out the &DBMopenread call and just use the direct tie statement... no errors.
Can anyone shed light on this strange situation? I'm trying to eliminate some Apache error_log messages. Thank you!