Well, what is wrong with line 132? (The line Grandfather mentioned.) Compare it to the similar blocks of code on lines 62 and 96. What is different? And what about line 128? Compare that one to line 132 too.
If I turn on the use warnings pragma, I get the following error from Perl:
Useless use of a constant (my $last_present = ) in void context at hun
+ter2.pl line 132.
It sounds like you're throwing something away. A string, to be precise. Is there supposed to be a string there? Or is it supposed to be a variable assignment?