How do you call this script when it works? You should be using something like the CGI module, not reading @ARGV. It also sounds like you don't really understand the difference between CGI and mod_perl. You do not need mod_perl to run perl scripts under CGI.