#!/usr/local/bin/perl $DATA='data.txt'; open (DATA,"<$DATA") || die "Can't open $DATA $!"; @line = ; foreach (@line) { chop; ($key, $one, $two, $three, $four, $five, $six) = (split(/,/)); $key = "" if !defined($key); #this should make it null if nothing's there $one = "" if !defined($one); $two = "" if !defined($two); $three = "" if !defined($three); $four = "" if !defined($four); $five = "" if !defined($five); $six = "" if !defined($six); } while () { chomp; @line = (split(/,/)); # was getting errors on split /,\s*/; $key = shift @line; push @{$data{$key}}, \@line; } print $data{"Andrea"}[0][1], " should be good\n"; # offsets off by one + print $data{"Dave"}[0][1], " should be better\n"; print $data{"Joe"}[0][1], " should be 0\n"; close(DATA);