2012-08-22 5 views
0

Net :: SSH를 사용하여 원격으로 파일을 검색해야하지만 파일이 원격으로 존재하지 않으면 스크립트가 작동하지 않습니다. 이걸 멈추고 계속 스크립트를 작성하려면 어떻게해야합니까?Perl Net :: SSH 파일이 있는지 확인하십시오.

eval { 
    my $login_output = $ssh->login($user, $pass); 

    foreach $device (keys %{$deviceHashRef}) 
    { 
        my $transfer_output = $scpe->scp("$host:/home/portal/runtime/portal_daemon/data/journal/2012.07/refrigeration.case.$device.hourly", '/tmp/poop/input'); 
    } 
}; 

if([email protected]) 
{  
    print Dumper [email protected]; 
} 

감사합니다,

답변

1

당신이 평가 후면 {}에 전화를 포장하는 경우가 다이()를 잡을 것입니다, 당신은 오류를 처리 할 수 ​​있습니다.

my $transfer_output = eval { $scpe->scp("$host:/home/portal/runtime/portal_daemon/data/journal/2012.07/refrigeration.case.$device.hourly", '/tmp/poop/input') }; 
if ([email protected]) { 
    my $err = [email protected]; 

    # you can parse the error message out of $err and build an error message 
    if ($err =~ /not found/) { 
     logger->err('the input file was not found on the remote server'); 
    } 
    else { 
    logger->err("file copy encountered a problem: $err"); 
    } 
} 
관련 문제