Wie kann ich einen Systembefehl mit Alarm in Perl beenden?

Ich führe den folgenden Codeausschnitt unter Windows aus. Der Server beginnt kontinuierlich zu lauschen, nachdem er vom Client gelesen hat. Ich möchte diesen Befehl nach einem bestimmten Zeitraum beenden.

Wenn ich benutzeAlarm( Funktionsaufruf innerhalb vonmain.pl, dann beendet es das gesamte Perl-Programm (hiermain.pl), also nannte ich dasSyste Befehl durch Platzieren in einer separaten Perl-Datei und Aufrufen dieser Perl-Datei alarm.pl) in der ursprünglichen Perl-Datei mit demSyste Befehl

Aber auf diese Weise konnte ich die Ausgabe dieses @ nicht übernehmsystem() ruft weder in der ursprünglichen Perl-Datei noch in einer aufgerufenen Perl-Datei auf.

Kann mir bitte jemand mitteilen, wie ein @ gekündigt werden kansystem() call oder nimmst du den ausgang so, wie ich ihn oben benutzt habe?

main.pl
my @output = system("alarm.pl");
print"one iperf completed\n";

open FILE, ">display.txt" or die $!; 
print FILE @output_1; 
close FILE;
alarm.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;

n beide Richtungdisplay.txt ist immer leer.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage