in reply to Recursively walk a hash to get to an element
There's an typo in the code; the code block in the reduce statement should be
Also, when I tried the code as given (after fixing the above typo), I got the error:{ \($$a->{$b}) }
Here's the full code of the script that caused that error:% perl rec_walk.pl Can't call method "List::Util::reduce" on unblessed reference at rec_w +alk.pl line 9.
I couldn't figure out why the error, so I switched the code touse strict; my %myhash; $myhash{bedrock}{flintstone}{fred} = 3; my $ref = pointer_to_element(\%myhash, qw(bedrock flintstone fred)); sub pointer_to_element { require List::Util; return List::Util::reduce { \($$a->{$b}) } \shift, @_; }
and it worked great. Tres cool.use List::Util 'reduce'; sub pointer_to_element { return reduce { \($$a->{$b}) } \shift, @_; }
the lowliest monk
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Recursively walk a hash to get to an element
by ihb (Deacon) on Mar 31, 2005 at 03:27 UTC |