¿Cómo puedo terminar un comando del sistema con alarma en Perl?

Estoy ejecutando el fragmento de código a continuación en Windows. El servidor comienza a escuchar continuamente después de leer del cliente. Quiero terminar este comando después de un período de tiempo.

Si yo usoalarma() llamada a funciones dentromain.pl, luego termina todo el programa Perl (aquímain.pl), así que llamé a estosistema comando colocándolo en un archivo Perl separado y llamando a este archivo Perl (alarm.pl) en el archivo Perl original utilizando elsistema mando.

Pero de esta manera no pude tomar la salida de estesystem() no llame ni en el archivo Perl original ni en un archivo Perl llamado.

¿Alguien podría decirme cómo terminar unsystem() llamar o tomar la salida de la manera que utilicé anteriormente?

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;

En ambos sentidosdisplay.txt siempre está vacío

Respuestas a la pregunta(4)

Su respuesta a la pregunta