The first thing to check might be whether or not you can do setuid on a Perl program on your system. Not all operating systems support setuid on non-compiled programs (or "text binaries" as they're sometimes called -- anything with a shebang line). Not all installations of operating systems that do support them are configured to allow them.
Third, if you can see the mount options for your filesystems, check to see if the "nosuid" option is set where you're trying to use setuid.