in reply to Extracting non-consecutive but related items from an array.

my %servers; while (<>) { chomp; next unless 3 == my ($server, $loc, $country) = split /,\s*/; push @{$servers{$server}}, [$loc, $country]; } local $" = " "; while (my ($server, $info) = each %servers) { print "$server\n"; print "\t@$_\n" foreach @$info; }

Replies are listed 'Best First'.
Re^2: Extracting non-consecutive but related items from an array.
by sapnac (Beadle) on Jun 15, 2005 at 14:11 UTC
    #use strict; use FileHandle; # Global Declaration my($spool,%serverdet); open (spooler ,"data.dat") or die "Error opening the file\n"; while($spool=<spooler>) { chomp($spool); ($server,$dat1,$dat2)=split(/,/,$spool); if($serverdet{$server}) { $serverdet{$server} .= ";".$dat1.",".$dat2; }else{ $serverdet{$server} = $dat1.",".$dat2; } } foreach $key (sort keys %serverdet) { print "Server $key\n"; @val = split(/;/,$serverdet{$key}); foreach $val (sort @val) { print $val."\n"; } }
    Hope this helps!

    code tags added by holli