sub father_of { my $find = shift; my $data_file = "reff.data"; open(DAT, $data_file) || die "Could not open file: $!"; foreach() { chomp; my($son,$father) = split; if($son == $find) { return $father; } } close(DAT); } my $son = 1045316419; my $father = father_of($son); my $grandfather = father_of($father); print "The son is $son\n"; print "The father of $son is $father\n"; print "The father of $father is $grandfather\n"; #### open(DAT,$data_file) || die "Couldn't open file": foreach() { chomp; my($son,$father) = split; $fathers{$son} = $father; } close(DAT); my $son = 1045316419; my $father = $fathers{$son}; my $grandfather = $fathers{$father};