in reply to Strange finish!!

I think it is important to point out that the answer to this question is simply found in perlsyn. Here is a snippet from 'perlsyn':

Every simple statement must be terminated with a semicolon, unless it is the final statement in a block, in which case the semicolon is optional...Note that there are some operators like eval {} and do {} that look like compound statements, but aren't (they're just TERMs in an expression), and thus need an explicit termination if used as the last item in a statement.

lupey