Windows で以下のコード スニペットを実行しています。クライアントからの読み取り後、サーバーは継続的にリッスンを開始します。一定期間後にこのコマンドを終了したい。
内でalarm()関数呼び出しを使用するmain.pl
と、Perl プログラム全体 (ここではmain.pl
) が終了するため、このシステムコマンドを別の Perl ファイルに配置し、システムalarm.pl
を使用して元の Perl ファイルでこの Perl ファイル ( )を呼び出して呼び出しました。指図。
しかし、この方法ではsystem()
、元の Perl ファイルでも呼び出された Perl ファイルでも、この呼び出しの出力を取得できませんでした。
system()
通話を終了する方法、または上記で使用した方法で出力を取得する方法を教えてください。
main.pl
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
でも常に空です。