SSC_perl wrote:
>       If someone could explain what I'm doing wrong, I'd appreciate it.  I 
> just
> can't see it.
>
> Thanks,
> Frank
>
> --------------------------
>
> use strict;
> use warnings;
> use 5.010;
>
> use Data::Dumper;
>
> my %entries;
>
> while (my $line = <DATA>) {
>       chomp $line;
>       my($state, $zipcodes) = split (/=/, $line);
>       push( @{ $entries{$state} }, split( /,/ => $zipcodes) )
> }
>
> foreach my $state (sort keys %entries) {
>     say "The Zip Codes of $state are";
>     foreach (@{$entries{$state}}) {
>         print Dumper (@{$entries{$state}});
>     }
> }
>
>
> __DATA__
> AK=995,996,997,998,999
>

Others have already pointed what you were doing wrong, so I'll point out
something else.

Instead of using 2 separate split statements, I'd use a single split
statement to assign $state and a @zipcodes array.

use 5.010;
use strict;
use warnings;
use Data::Dumper;

my %entries;

while (my $line = <DATA>) {
        chomp $line;
        my($state, @zipcodes) = split /[=,]/, $line;
        push @{ $entries{$state} }, \@zipcodes;
}

foreach my $state (sort keys %entries) {
    say "The Zip Codes of $state are";
    say Dumper $entries{$state};
}


__DATA__
AK=995,996,997,998,999
CA=95122,95035,95112

-----------

Outputs:
The Zip Codes of AK are
$VAR1 = [
          [
            '995',
            '996',
            '997',
            '998',
            '999'
          ]
        ];

The Zip Codes of CA are
$VAR1 = [
          [
            '95122',
            '95035',
            '95112'
          ]
        ];

--
Ron Bergin


-- 
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to