Changed it to:
#!/usr/bin/perl
use warnings;
use strict;
my @english = qw(january february march april may june july);
my @french = qw(janvier fverier mars avril mai juin juily);
my %months;
$months{english} = \@english;
$months{french} = \@french;
for (keys %months) {
print "Months in $_ : @{$months{$_}} \n";
}
and it worked fine.
Thanks Uri.
Thanks
Jatin
On 9/3/2010 10:47 AM, Uri Guttman wrote:
>>>>>> "JD" == Jatin Davey<jashokda@cisco.com> writes:
> JD> #!/usr/bin/perl
> JD> use warnings;
> JD> use strict;
>
> very good to see those.
>
> JD> my @english = qw(january february march april may june july);
> JD> my @french = qw(janvier fverier mars avril mai juin juily);
>
> JD> my %months;
> JD> my $eng_ref;
> JD> my $fre_ref;
>
> JD> $eng_ref = \@english;
> JD> $fre_ref = \@french;
>
> no need for that. you can assign the refs directly into the hash.
>
> JD> $months{english} = $eng_ref;
> JD> $months{french} = $fre_ref;
>
> JD> for (keys %months) {
>
> that is assigning each key to $_. you never use $_. so this will loop
> TWO times as there are two keys.
>
> JD> print "Months in english : @{$months{english}} \n";
> JD> print "Months in french : @{$months{french}} \n";
>
> so both lines get printed twice.
>
> what you want is more likely this:
>
> foreach my $month (keys %months) {
>
> print "Months in $month : @{$months{$month}}\n";
> }
>
> uri
>
|