in reply to tail and grep for Windows

Just a couple of things:
At line 10, you are using the two argument version of the open command. I opened a DOS window and tried the following:

copy c:\command.com c:\command2.com perl ptail.pl ">c:\command2.com"
Now command2.com is a 0 byte file. Not good. This can be avoided by using the three argument version like:
open (FH, "<", $file) || die "Unable to open $_: $!";

It also has an endless loop caused by line 18. while (1) will run forever since you do not provide a way to leaving this loop.

<nitpicking>And the program usage as displayed when run without command line arguments is only valid if you compile it.</nitpicking> =D

Update: Removed unnecessary grep string.