Это работает, однако, я не совсем уверен, почему или если вы действительно хотите сделать это.
my $input = "this is a test";
open(my $fh,'-|',"echo $a"); # open a pipe instead and echo the string
my $n = sysread($fh,$buf,4) or warn $!;
Обратите внимание, что при сбое sysread устанавливается $!
, поэтому вы можете проверить ошибки.