in reply to max number of arguments

You'd really need to consult your shell's documentation. There really isn't a limit on the number of arguments you can pass, but more the length. This isn't always easy to track down in documentation (especially if it isn't documented).

I suggesting reading the arguments off of stdin, by simply fireing off a system(qw{ ./foo < foo.args })

Either that or use something like DB_File, and pass arguments that way. You can keep things simple this way (simple enough)

update:
IIRC, there is also a module on cpan which would let you circumwent any shell argument size limits, but it may be just a figment of imagination (it might be Argv I was thinking off, but it doesn't matter, it appears Zaxo is correct).

update:
Great Zaxo, if that indeed is true ;)

____________________________________________________
** The Third rule of perl club is a statement of fact: pod is sexy.