0
설치 프로그램을 루프로 실행하고 설치 프로그램을 시작해야 할 때마다 설치 프로그램을 실행하려고합니다. 그러나 루프가 한 번 실행되면 아래 오류가 발생하고 스크립트가 중지됩니다. 이것을 막을 수있는 방법이 있습니까?루프에서 설치 프로그램을 생성하는 방법
my $exp = Expect->new;
my $path="/opt/sample/Installer.pl";
for(my $i=0;$i<$a;$i++){
$exp->spawn($path) or die "Cannot spawn $path: $!\n";
..
..
..
}
오류 :
Cannot reuse an object with an already spawned command at Installer.pl line 52
기대 설명서를 말한다 :
은 또한 당신이 가진 개체를 다시 사용할 수 없습니다 것을 이미 명령이 종료 된 경우에도, 명령을 산란 있습니다. 죄송합니다.하지만 새 객체를 할당해야합니다.처리 방법이 있습니까?
사용중인 모듈에 대해 언급하지 않았으므로 추측을 제외하고는 누구나 내 질문에 대답 할 수 있습니까? 또한 코드에 인용 부호가없는 문자열이있어서 코드가 컴파일되지 않습니다. 코드를 잘라내어 붙여 넣기하고 항상 제대로 작동하는지 확인하고 문제를 재현 할 수있는 것이 좋습니다. – TLP
죄송합니다. perl에서 Expect Module을 사용 중이며 루프에서 설치를 시작하려고합니다. 내 코드에서 문자열을 인용했습니다. 나는 그것을 여기에서하는 것을 잊었다. 그것을 우습게 만들 것입니다. – Leo
루프 내에서'my $ exp = Expect-> new;를 이동하면 문제가 해결 될 것입니다. – TLP