$ echo huhu | perl -Mstrict -e '(sub {sysread @_})->(\*STDIN, my $buf, 100)' Not enough arguments for sysread at -e line 1, near "@l}" Execution of -e aborted due to compilation errors. #### $ echo huhu | perl -Mstrict -e '(sub {sysread $_[0], $_[1], $_[2], (@_>3?$_[3]:())})->(\*STDIN, my $buf, 100); print $buf' huhu