#!/usr/bin/perl -w use strict; use FileHandle; my $command="/usr/local/files/command"; my @array; my $timeout=50; eval{ local $SIG{ALRM}=sub{die "alarm\n"}; alarm $timeout; my $pid = open my $sys, "-|", $command or die $!; @array=<$sys>; close $sys; alarm 0; }; if($@){ die unless $@ eq "alarm\n"; }else{} if($@ eq "alarm\n"){print "COMMAND FAILURE!\n";} my $rule=qr/string/; for(my $i=0; $i<@array; $i++){ my $line=$array[$i]; $line =~ s/\s+//g; if($line =~ m/$rule/){ my $VAR=(split $rule, $line)[1]; print "VALUE VAR: $VAR\n"; exit; } }