#!/usr/bin/perl -w use strict; use IO::File; my $fh = new IO::File; $fh->open("< foo.txt") or die "can't open foo.txt $!"; my @file = map{ [split /\s+/]; } <$fh>; my $keys = shift @file; print "The keys are:\n"; print join("\t",@$keys )."\n"; my @aoh = map{ my %hash; @hash{@$keys} = @$_; \%hash} @file; print "Row 3 is \n"; print join("\t", @{$aoh[2]}{@$keys} )."\n"; print "Column 'NAME2' is:\n"; foreach my $row (@aoh) { print $row->{NAME2}."\n"; }