我在 Windows 上运行以下代码片段。服务器从客户端读取后开始连续监听。我想在一段时间后终止这个命令。
如果我在 中使用alarm()函数调用main.pl
,那么它会终止整个 Perl 程序(此处main.pl
),因此我通过将其放在单独的 Perl 文件中并使用系统在原始 Perl 文件中调用此 Perl 文件()来调用此系统命令命令。alarm.pl
system()
但是通过这种方式,我既不能在原始 Perl 文件中也不能在一个被调用的 Perl 文件中获取这个调用的输出。
任何人都可以让我知道终止system()
呼叫或以我上面使用的方式获取输出的方式吗?
主文件
my @output = system("alarm.pl");
print"one iperf completed\n";
open FILE, ">display.txt" or die $!;
print FILE @output_1;
close FILE;
警报.pl
alarm 30;
my @output_1 = readpipe("adb shell cd /data/app; ./iperf -u -s -p 5001");
open FILE, ">display.txt" or die $!;
print FILE @output_1;
close FILE;
两种方式display.txt
总是空的。