in reply to array - separating elements in a 3-column list

Depending on what you want to do with it once you have it in the script, you could put the elements into 3 different hashes, one for the left, one for the middle and one for the right. This would allow you to reference all the elements at once or seperately later on.
use strict; use warnings; my $file = '3column.file'; my $i=0; open (INPUT, "<$file") or die "Could not open $file: $!"; my (%left_hash,%middle_hash,%right_hash); while (<INPUT>) { my ($left, $middle, $right) = split (/\s+/, $_); $left_hash{$i}=$left; $middle_hash{$i}=$middle; $right_hash{$i}=$right; $i++; }

Replies are listed 'Best First'.
Re^2: array - separating elements in a 3-column list
by tphyahoo (Vicar) on Jan 27, 2005 at 11:18 UTC
    Or you could use an array of hashes.
    #hoaMessing.pl use strict; use warnings; use Data::Dumper; my $file = '3column.file'; #contains #a b c #d e f #g h i my $i=0; open (INPUT, "<$file") or die "Could not open $file: $!"; my (%left_hash,%middle_hash,%right_hash); my $line_number = 0; my @lines; while (<INPUT>) { my %line; ($line{left},$line{middle},$line{right}) = split (/\s+/, $_); $line{line_number} = $line_number; push @lines,\%line; $line_number++; } print Dumper(\@lines); #prints #$VAR1 = [ # { # 'middle' => 'b', # 'left' => 'a', # 'right' => 'c', # 'line_number' => 0 # }, # { # 'middle' => 'e', # 'left' => 'd', # 'right' => 'f', # 'line_number' => 1 # }, # { # 'middle' => 'h', # 'left' => 'g', # 'right' => 'i', # 'line_number' => 2 # } # ];