Andy, I'd really like to know why you are doing this at all... seems that accepting input as perl code over the 'net (or wherever) is a very bad idea. For those that need access to install plugins (this sounds like what you are doing), allow the filesystem to enforce the protections -- that is -- require them to have an account on the box. If they must do this remotely, this is what version control systems and SSH are for. Even Net::SSH if you must. Maybe if I understood the goal a little better...
and if you are running say, a student test program, if your students OWNZOR your box you might as well just get them expelled :)
But still, I do agree it would be nice to not have these BEGIN block vulnerabilities, but checking syntax without BEGIN blocks would look like broken syntax for many things that used BEGIN.