gpt4 book ai didi

perl - 如何通过命令行或脚本将 perl 脚本的输出通过管道传输到另一个脚本

转载 作者:行者123 更新时间:2023-12-02 02:15:45 27 4
gpt4 key购买 nike

我在 Windows 机器上(在环境路径上带有 perl 解释器)命令:

 perl script1.pl | perl script2.pl 

脚本一的内容只是:
  print "AAA";

脚本 2 的内容只是:
  $r = shift;
print $r;

并且该命令没有正确管道。你怎么做到这一点?还,
如果您要使用文件句柄来执行此操作,您将如何同时从另一个脚本运行 perl 脚本。以下不起作用:
    open F, '| perl script2.pl AAA';

最佳答案

请记住 shift 在您的主程序中从特殊数组中删除元素 @ARGV保存当前调用的命令行参数。

编写 script2 作为过滤器

#! perl

while (<>) {
print "$0: ", $_;
}

甚至
#! perl -p
s/^/$0: /;

要从 script1 设置管道,请使用
#! perl

use strict;
use warnings;

open my $fh, "|-", "perl", "script2.pl"
or die "$0: could not start script2: $!";

print $fh $_, "\n" for qw/ foo bar baz quux /;

close $fh or die $! ? "$0: close: $!"
: "$0: script2 exited $?";

多参数 open绕过 shell 的参数解析——Windows 上的一个好主意。上面的代码假设两个脚本都在当前目录中。输出:

script2.pl: foo
script2.pl:酒吧
script2.pl:baz
script2.pl:quux

关于perl - 如何通过命令行或脚本将 perl 脚本的输出通过管道传输到另一个脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10772209/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com