richard_hawkes has asked for the wisdom of the Perl Monks concerning the following question:
Hi,
I'd like to create an associative array containing references to regular arrays (lists). The regular arrays are being created in a loop. Here is a basic example of what I'm doing:
#!/usr/bin/perl
# Create some arrays of random numbers...
foreach $NAME ('Fred', 'Barney', 'Wilma', 'Peggy')
{
local (@ARRAY) = ();
for ($i = 0; $i < 5; $i++)
{
push (@ARRAY, int(rand(30)));
}
# And now store the reference in an associative array...
$ALINK{$NAME} = \@ARRAY;
}
# Here's how I might print it out...
foreach $KEY (keys (%ALINK))
{
@ARRAY = @{ $ALINK{$KEY} };
foreach $ELEMENT (@ARRAY)
{
print $KEY . " " . $ELEMENT . "\n";
}
}
My question is: Am I risking it using the 'local' statement because it will be picked up later by garbage collection? If I am, then what's the best way to create new lists and keep a reference to them?
Thanks your holynesses!
Richard
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Referncing a local array outside
by broquaint (Abbot) on Dec 16, 2003 at 13:44 UTC | |
|
Re: Referncing a local array outside
by edoc (Chaplain) on Dec 16, 2003 at 13:49 UTC | |
|
Re: Referncing a local array outside
by Abigail-II (Bishop) on Dec 16, 2003 at 13:38 UTC | |
|
Re: Referncing a local array outside
by Zaxo (Archbishop) on Dec 16, 2003 at 19:25 UTC | |
|
Re: Referncing a local array outside
by welchavw (Pilgrim) on Dec 16, 2003 at 15:37 UTC | |
|
Re: Referncing a local array outside
by xenchu (Friar) on Dec 16, 2003 at 15:09 UTC |