@inv_return = get_best_inv("Robb"); print "Name: ",$inv_return[1]," Invoice Number: ", $inv_return[0], " Date: ",$inv_return[2]," - ",$inv_return[3],"\n"; sub get_best_inv { $whatname = shift; my ($inv, $name, $date, $timestamp) = ""; open (INFILE, "t"); while () { chomp; ($inv,$name,$date,$timestamp) = split " "; if (($name eq "$whatname") and ($date ge $best_date) and ($timestamp >= $best_timestamp)) { ($best_inv, $best_name, $best_date, $best_timestamp) = ($inv, $name, $date, $timestamp); } } close (INFILE); return ($best_inv, $best_name, $best_date, $best_timestamp); }