in reply to Re: perlbrew: moving to a new perl with all current modules
in thread perlbrew: moving to a new perl with all current modules

Some operating systems (e.g. Linux) place an arbitrary limit on the length (in bytes) of the argument list passed to a process.

See Linux ARG_MAX.

perl -E'sub Monkey::do{say$_,for@_,do{($monkey=[caller(0)]->[3])=~s{::}{ }and$monkey}}"Monkey say"->Monkey::do'
  • Comment on Re^2: perlbrew: moving to a new perl with all current modules

Replies are listed 'Best First'.
Re^3: perlbrew: moving to a new perl with all current modules
by moritz (Cardinal) on Jun 17, 2012 at 10:48 UTC
      xargs needs a -n switch for that though - or does it not?

        The xargs program shipped with my Debian GNU/Linux system knows about the command line length limitation, and automatically wraps too long command lines into muliple programs. You can see the length limits easily:

        $ xargs --show-limits Your environment variables take up 2038 bytes POSIX upper limit on argument length (this system): 2093066 POSIX smallest allowable upper limit on argument length (all systems): + 4096 Maximum length of command we could actually use: 2091028 Size of command buffer we are actually using: 131072

        And to show that it does not produce an error, I create a command line that's 20 times that limit:

        $ yes | head -n 20910280 | xargs /bin/echo > /dev/null $