in reply to push problem

Is this:

while(<DATA>) { push @array [$first, $last, $address, $city, $zip]; }
meant to read data from a file?

You never set the values of $first, $last etc. Assuming that what you mean to do is read 5 values from a file and put the array containing those vlaues in @array then you should do something like:

while(<DATA>) { push @array, [split]; }

p.s. are @array and @data supposed to be the same thing?