Unable to create Hash in Perl? -
i learning perl script here. having problem creating hash. code here:
print "hello world!\n"; @days = ("1", "2"); print "there $#days days\n"; print "1 $days[0]\n"; %months = ("a" => 1, "b" => 2, "c" => 3); print "there $#months keys\n"; print "a $months[0]\n"; $i (keys %months) { print "$i has value $months[$i].\n"} now working fine array. hash printing "there -1 keys". not printing variable values in last print calls.
you using array syntax on hash, not think @ all. instead of operating on hash, operating on array called @months. example:
print "there $#months keys\n"; this array @months, see empty, , happily print -1.
when
for $i (keys %months) { print "$i has value $months[$i].\n" } perl try convert keys a, b , c numbers, 0. issue warning:
argument "a" isn't numeric in array element ... then print empty array element $month[0]. issue undefined value warning. not these warnings, because did not use
use strict; use warnings; in script. strict have told @months has not been declared, , stopped bug right away.
the syntax should have used is:
print "there " . (keys %months) . " keys\n"; ... print "$i has value $months{$i}\n";
Comments
Post a Comment