2013-08-06 14 views
0

이 스크립트는 명령 줄에서 매번 작동하지만 아주 드물게 cron 작업에서 작동합니다. 크론에서 호출 동안 ./chort.plLWP :: Simple and cron

을 그러나 "잘못된 값"메시지와 함께 매우 자주 (항상) 사망 : :이처럼 실행할 수 $res보다

*/2 10-18 * * 1-5 /path/to/chort.pl >> /tmp/chort.pl 2>&1 

가 죽으면, 비어 있습니다. print "*$res*\n"; 인쇄 **. 그래서 cron에서 호출하는 동안 웹 페이지를 가져 오는 데 문제가있는 것으로 보입니다. 여기에 조각 :

sub getLSEVal 
{ 
     my $fourWayKey =  shift; 
     my $url   =  "http://pat.to.url"; 
     my $res; 
     timeout 280 => sub { 
       $res =  get $url ; 

       return (-2, -2, -2); 
     }; 
     print $res; 
     $res   =~  /Price\| High \| Low .*?<tr class="odd">.*?<td>(.*?)<\/td>.*?<td>(.*?)<\/td>.*?<td>(.*?)<\/td>/msig; 
     my $c = $1; 
     my $h = $2; 
     my $l = $3; 
     print "$1 $2 $3\n"; 
     die ("wrong values") if $c !~ /\d+\.?\d*/ or $h !~ /\d+\.?\d*/ or $l !~ /\d+\.?\d*/; 
     return ($c, $h, $l); 
} 

답변

0

당신은 아마 당신에게 컨트롤의 높은 수준을 허용하는 LWP::UserAgent를 사용해야합니다. LWP :: Simple은 너무 추상적이어서 문제가 발생할 때 어떤 일이 일어나고 있는지 알 수 없습니다.