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


in reply to Working With Arrays and Files

The simplest way to do this (atleast for me) is with a hash. Now, the solution is a bit simplistic and it if you need to treat the data in any way before you print it it might not suffice, but it does give you the requested result.
I know I'm gonna be whacked on the head for not finding a better way of splitting the data.

#!/usr/bin/perl my %hash; while (<DATA>) { chomp; my ($name, $column2, $column3, $column4, $column5, $type) = sp +lit/\s+/; $hash{$type} = $hash{$type} . "$name $column2 $column3 $column +4 $column5\n"; } foreach $key (sort keys %hash) { print "$key\n$hash{$key}\n"; } __DATA__ name1 1 2 3 4 typex name2 3 4 5 6 typey name3 2 3 3 1 typex
which gives you the following output:
typex name1 1 2 3 4 name3 2 3 3 1 typey name2 3 4 5 6

Replies are listed 'Best First'.
Re: Re: Working With Arrays and Files
by kevinw (Novice) on Jul 23, 2002 at 20:08 UTC
    thanks fsn, is there anyway to format the data in the print statement such that it comes out in straight columns? i usually just do print "%x %y..." etc, but in this case, i'm not sure how to go about it...thanks again