Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?

Re: Cause of an endless loop?

by tlm (Prior)
on Jun 18, 2005 at 21:46 UTC ( #468035=note: print w/replies, xml ) Need Help??

in reply to Cause of an endless loop?

The problem was that in your original code you were treating $u ambiguously: both as a hashref and as an array index. The code below fixes it:

use strict; my $name = 'test'; my %test; push @{$test{"$name"}}, { name => 'me',age => 'here' }; push @{$test{"$name"}}, { name => 'meAgain',age => 'Nowhere' }; push @{$test{"two"}}, { name => 'you',age => 'there' }; push @{$test{"two"}}, { name => 'AndYou',age => 'AndThere' }; my ($s,$u,$n); foreach $s (keys %test) { foreach $u ( 0..$#{$test{$s}} ) { foreach $n (keys %{$test{$s}[$u]}) { print "$s $u $n: $test{$s}[$u]{$n} - \n"; } } } __END__ test 0 name: me - test 0 age: here - test 1 name: meAgain - test 1 age: Nowhere - two 0 name: you - two 0 age: there - two 1 name: AndYou - two 1 age: AndThere -

Update: My original solution fixed the infinite looping, but produced an output different from what I think the OP intended; the version above fixes that.

BTW, the price of eternal vigilance is using warnings. With use warnings, this is what your original code produces:

Use of reference "HASH(0x814ccf0)" as array index at line 20 +. Out of memory!

the lowliest monk

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (4)
As of 2022-09-28 23:09 GMT
Find Nodes?
    Voting Booth?
    I prefer my indexes to start at:

    Results (125 votes). Check out past polls.