首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在不用perl中继stdout的情况下执行system()

在不使用 Perl 的情况下执行 system() 可以通过以下方法实现:

  1. 使用 shell 命令:

在 Perl 脚本中,可以使用 shell 命令来执行 system() 调用。例如:

代码语言:txt
复制
my $command = "ls -l";
my $output = `$command`;
print $output;

这将执行 ls -l 命令,并将输出存储在 $output 变量中,然后打印输出。

  1. 使用 IPC::Open2 模块:

IPC::Open2 模块允许您在 Perl 脚本中执行外部命令,并将输出重定向到变量。例如:

代码语言:txt
复制
use IPC::Open2;

my $pid = open2(\*CHLD_OUT, \*CHLD_IN, "ls -l");
waitpid($pid, 0);

my @output = <CHLD_OUT>;
close CHLD_OUT;
close CHLD_IN;

print @output;

这将执行 ls -l 命令,并将输出存储在 @output 数组中,然后打印输出。

  1. 使用 IPC::Run 模块:

IPC::Run 模块提供了一个简单的接口来执行外部命令并捕获输出。例如:

代码语言:txt
复制
use IPC::Run qw(run);

my @output;
run ["ls", "-l"], \undef, \@output;

print @output;

这将执行 ls -l 命令,并将输出存储在 @output 数组中,然后打印输出。

这些方法都可以在不使用 Perl 的情况下执行 system(),并且不会干扰 stdout。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的沙龙

领券