我有一个命令,期望从管道输入.例如,考虑一下着名的cat命令:
$ echo Hello | cat
Hello
Run Code Online (Sandbox Code Playgroud)
假设我在Perl 6程序中有一个字符串,我想管道输入命令:
use v6;
my $input = 'Hello'; # This is the string I want to pipe to the command.
my $proc = run 'cat', :in($input);
Run Code Online (Sandbox Code Playgroud)
这不起作用(我没有输出).我可以通过调用bash和解决这个问题echo:
my $proc = run 'bash', '-c', "echo $input | cat";
Run Code Online (Sandbox Code Playgroud)
但是,有没有一种方法,我可以做到这一点,但不运行bash和echo?
在Perl5中,我可以简单地做my $pid = open my $fh, '|-', 'cat';,然后print $fh $str.