in reply to perl: Argument list too long

This is a kernel limitation. Shell arguments and environment variables are allocated from the same space and are limited to some number of pages - usually something like 32.

You'll probably have to come up with another way to pass your arguments, such as reading them through STDIN or passing them in a file.

For more discussion about this problem, see "Argument list too long": Beyond Arguments and Limitations

Here's a script to test what the limits for %ENV are:

my $n = 0; while (1) { $ENV{"X$n"} = "X" x 1024; test($n) or last; $n++; } print "first failure at n = $n\n"; sub test { my $n = shift; my $st = system('/bin/echo \\\$X1 >/dev/null'); # Note: the above call to system() will cause the shell to # report 'Argument list too long' for a large enough environment. $st == 0; }
On my Ubuntu box it first fails at n = 125, which corresponds to approx. 128 K (= 32 x 4K pages.)