I'm creating a few types of arrays in each iteration of a loop, and saving them as references within a hash who's value is also an array ref.
foreach $file(@filenames){ open FILE, "$file"; while (<FILE>){ $array1 =(); $array2 = (); #fill @array1; array1_ref = \@array1; #fill @array2; array2_ref = \@array2; } $hash{$file} = [$array2_ref, $array1_ref] ) #accessing the info: print @$hash{$somefile}[1];
When I try to dereference to access the data, the arrays are empty, although I've verified that the references work within the foreach loop.
I think that this is because the references in the hash are pointing to something that gets zeroed and written over in each iteration of the loop. Is there a way to avoid giving new names to the arrays in each iteration, but still have them retain their memory address?
thanks, maayanIn reply to saving nested arrays in a hash by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |