Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

Replicated the pseudo-hash mis-error statement...

by dragonchild (Archbishop)
on Jun 21, 2001 at 19:58 UTC ( #90430=note: print w/ replies, xml ) Need Help??


in reply to Re: Pseudo-hash intrusion...
in thread Pseudo-hash intrusion...

After thinking through the situation, it turns out that this is the exact model for what I was doing in the larger script. Note the re-definition of $sortfunc.

Now, yes I know that there's a definite package-scoping problem, but I'm posting this to see if this is actually a potential problem with the 5.6.0 interpreter and pseudohashes that might come out in other situations, not just one where the programmer (me) is making a scoping error.

scorpion:/export/home/kinyonro-> cat abcd #!/usr/local/bin/perl use strict; use 5.6.0; use efgh qw(do_thing); ###################################################################### +######### my $foo = [ [ { blah => 'a' }, {blah => 'b'}, ], [ { blah => 'e' }, {blah => 'f'}, ], [ { blah => 'c' }, {blah => 'd'}, ], ]; my $sortfunc = sub { $a->[0]->{blah} cmp $b->[0]->{blah} }; my @bar = do_thing($foo, $sortfunc); for my $lref (@bar) { for my $hash (@$lref) { print "$_ => $hash->{$_}\n" for keys %$hash; } print "\n"; } ###################################################################### +######### $foo = [ { blah => 'd' }, { blah => 'b' }, { blah => 'c' }, ]; $sortfunc = sub { $a->{blah} cmp $b->{blah} }; @bar = do_thing($foo, $sortfunc); for my $hash (@bar) { print "$_ => $hash->{$_}\n" for keys %$hash; print "\n"; } scorpion:/export/home/kinyonro-> cat efgh.pm use strict; use 5.6.0; package efgh; use Exporter; our @ISA = qw(Exporter); our @EXPORT_OK = qw(do_thing); use Data::Dumper; sub do_thing { my ($data, $func) = @_; print Data::Dumper->Dump([$data]); my @bar = sort $func @$data; print Data::Dumper->Dump([@bar]); return @bar; } 1; scorpion:/export/home/kinyonro-> abcd $VAR1 = [ [ { 'blah' => 'a' }, { 'blah' => 'b' } ], [ { 'blah' => 'e' }, { 'blah' => 'f' } ], [ { 'blah' => 'c' }, { 'blah' => 'd' } ] ]; $VAR1 = [ { 'blah' => 'a' }, { 'blah' => 'b' } ]; $VAR2 = [ { 'blah' => 'e' }, { 'blah' => 'f' } ]; $VAR3 = [ { 'blah' => 'c' }, { 'blah' => 'd' } ]; blah => a blah => b blah => e blah => f blah => c blah => d $VAR1 = [ { 'blah' => 'd' }, { 'blah' => 'b' }, { 'blah' => 'c' } ]; No such pseudo-hash field "blah" at abcd line 32.


Comment on Replicated the pseudo-hash mis-error statement...
Download Code

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (6)
As of 2014-12-27 23:54 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (177 votes), past polls