Why would the program stop running even if it no longer exists on the disk?
By the time the unlink happens, Perl's already loaded the program off of the disk into memory, compiled it, and started to run it.
(It would be silly—and a lot of work—to write a programming language which had to read every line off of the disk before executing it. Not only would you get tripped up by things like operating system disk buffering, but you'd have a difficult time making things like function calls work well.)