#!/usr/bin/perl -w use strict; use Dumpvalue; my @ACCTS; open(IN, "< myfile") || die "Help!\n"; while () { my ($id, $name, $street, $city, $zip, $phone, $start_dt) = split(/\|\|/, +$_); ###push onto the array ACCTS an anonymous hash reference from the values you just split. push(@ACCTS, {'name' => name, 'street' =>$street, 'city' =>$city, 'zip' =>$zip, 'phone' =>$phone, 'start_dt' =>$start_dt, 'id' =>$id}); } close IN; ###always check what you have created. dump_ref(\@ACCTS); sub dump_ref { my $ref = shift; my $dumper = new Dumpvalue; $dumper->dumpValues($ref); } #### foreach(@ACCTS){ #dereference the elements of the hash contained in this #row of your array with the arrow... its just easier to #read in my opinion. print "This accounts id is ".$_->{id}."\n"; }