I've seen this in a few places, so you are probably already aware of it:
;;run the current perl program
(defun run-perl ()
(interactive "*")
(setq perl-buffer-name buffer-file-name)
(shell)
(setq perl-run-command "perl ")
(insert perl-run-command)
(insert perl-buffer-name)
)
(global-set-key [f7] 'run-perl)
But I have to say that I don't do many perl-specific things from within emacs. I'd rather jump over to a command window instead (somehow the green letters on black background mean "shell" to me a lot more than an emacs window, and black text on a white background means "write code here").