http://qs321.pair.com?node_id=377453


in reply to Re^2: map to hash of arrays
in thread map to hash of arrays

Use a while loop, not a map:
my %hash; my $key; while (<>) { /\S+ : (\S+)/ or die "unexpected line format: $_"; my $value = $1; if (defined $key) { push @{ $hash{$key} }, $value; undef $key; else { $key = $value; } }
--Dave
Opinions my own; statements of fact may be in error.

Replies are listed 'Best First'.
Re^4: map to hash of arrays
by emilford (Friar) on Jul 27, 2004 at 13:53 UTC
    Why would I want to use this over ccn's solution? Is it a matter of efficiency?
      I don't think there's any good reason. ccn assumes, obviously correctly, that the entire data is available in a single string. I didn't realise that. Also, I'd be very tempted to use the /x modifier, and insert some comments.
        That's the part I'm confused about, however. The data is not available in a single string. If I write the output to file, everything is broken down into seperate lines.