Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

Re^4: DB_File modes

by Anonymous Monk
on Mar 10, 2010 at 12:02 UTC ( #827767=note: print w/ replies, xml ) Need Help??


in reply to Re^3: DB_File modes
in thread DB_File modes

Since you arent going to elaborate, I'll just go ahead and refute your claims

DB_File has contained this code longer than perl 5.5 has existed. The situation you describe is nigh impossible (bless would have to fail and return 1, TIEHASH would have to fail and return 1).

15 May 1997 http://search.cpan.org/~chips/perl5.004/

07 May 1997 http://cpansearch.perl.org/src/PMQS/DB_File-1.14/DB_File.pm

sub TIEHASH { my $pkg = shift ; bless { VALID => { map {$_, 1} qw( bsize ffactor nelem cachesize hash lorder) }, GOT => {} }, $pkg ; }

If you intentionally return 1 , tied would return undef.

#!/usr/bin/perl -- use strict; use warnings; Main(@ARGV); exit(0); sub Main { Waha('NewHash'); Waha('OneHash'); } sub Waha { my $c = shift; my $obj = tie my (%foo), $c or die $!; printf '(%s) $obj=(%s) tied(%%foo)=(%s)' . "\n", $c, $obj, tied(%foo) || 'undef'; } ## end sub Waha BEGIN { package NewHash; sub TIEHASH { my $obj = bless {}, shift; return $obj; } package OneHash; sub TIEHASH { "$_[0] is broken" } } ## end BEGIN __END__ (NewHash) $obj=(NewHash=HASH(0x3d8bbc)) tied(%foo)=(NewHash=HASH(0x3d8 +bbc)) (OneHash) $obj=(OneHash is broken) tied(%foo)=(undef) (NewHash) $obj=(NewHash=HASH(0x225368)) tied(%foo)=(NewHash=HASH(0x225 +368)) (OneHash) $obj=(OneHash is broken) tied(%foo)=(undef)


Comment on Re^4: DB_File modes
Select or Download Code

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (3)
As of 2014-09-20 03:55 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (152 votes), past polls