I have a subroutine to which I want to pass a hash by reference. In the
real program, the hash in the caller starts out empty, and the
subroutine adds values to it.
The hash eventually becomes quite large, so I want the subroutine to add
values to the caller's hash. The following sample code does this, BUT I
have a concern that the subroutine might be making a local copy of the
caller's hash.
The code below shows how I am doing it now. It appears to work as
intended, but how can I ensure that the sub is not making a local copy
of the hash??
Thanks in advance:
use strict;
use warnings;
my %numbers = ();
makeNumbers(\%numbers);
foreach my $key (keys(%numbers))
{
print "$key $numbers{$key}\n";
}
#-------------------------------
sub makeNumbers
{
my @numbernames = qw(zero one two three four five);
if (my $nums = shift)
{
for (my $i = 0; $i < 6; $i++)
{
${%{$nums}}{$i} = $numbernames[$i];
}
}
}
_______________________________________________
Perl-Win32-Users mailing list
[email protected]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs