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 exploiting the Monastery: (8)
As of 2015-07-07 23:08 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (93 votes), past polls