in reply to Recursion - Array of Hashes

I don't think it has anything to do with recursion. I think it has to do with how you are using your array reference. In the sub, you are copying the array, and modifying only the copy. I created a small example to illustrate what might be going on:
use strict; use warnings; use Data::Dumper; my @levs; myfunc(\@levs); print "$#levs\n"; print Dumper(\@levs); sub myfunc { my ($aref) = @_; my @levs = @$aref; $levs[0] = 'foo'; print 'in sub ', Dumper(\@levs); } __END__ in sub $VAR1 = [ 'foo' ]; -1 $VAR1 = [];
Compare that with:
sub myfunc { my ($aref) = @_; $aref->[0] = 'foo'; print 'in sub ', Dumper($aref); }