perl -E"say $_ for 1..100e6" | perl -E"while(<>){ $n += length; last if $n > 1024**2; warn qq[$n\n];}" #### perl -E"say or die $^E for 1 .. 100e6" | perl -E"while(<>){ $n += length; last if $n > 1e5; warn qq[$n\n]; }" ... 99990 99996 The pipe is being closed at -e line 1.