Hi all!
In one program of mine, I collect key/value pair scattered along the code
using the
$hash{key} = value; form.
But sometimes I have a bunch of keys/values that I tried to *add* to the
hash in a single statement in the form of
%hash = (key => value, key => value, key => value, ... );
see (executable) script below.
To my surprise, the second form reinitialized the hash and practically
erased whatever was there before. What I was left with is the result of the
last statement.
I cannot find any treatment of this issue in Perl's documentation
(http://perldoc.perl.org/5.10.1/index.html).
This IMHO is inconsistent.
Any comments?
Meir
#!/usr/bin/perl
use strict;
my %hash;
$hash{'01'} = 1;
$hash{'02'} = 2;
$hash{'03'} = 3;
$hash{'04'} = 4;
print "Before:\n", ("-" x 6), "\n";
foreach my $key (sort keys %hash) {print "$key - $hash{$key}\n";}
%hash = (
'05' => 5,
'06' => 6,
'07' => 7,
'08' => 8,
);
print "After:\n", ("-" x 6), "\n";
foreach my $key (sort keys %hash) {print "$key - $hash{$key}\n";}
_______________________________________________
Perl mailing list
[email protected]
http://mail.perl.org.il/mailman/listinfo/perl