$return
변수를 검사하는 데 매우 어려움을 겪고 있습니다. print "return = ". $return ."\n";
은 프로세스가 여전히 실행 중이더라도 항상 비어있게됩니다. 초기화되지 않은 변수에 대한 경고가 표시됩니다. 누군가 설명해 주시겠습니까?변수를 검사 할 수 없습니다.
my $process="MInstaller";
my $return=` ps -eaf |grep $process | grep -v grep`;
sub chk_proc{
print "in chk_proc\n";
print "\n";
print "return = ". $return ."\n";
while (my $return ne "") {
sleep(5);
};
};
당신이 게시 한 바깥에서'chk_proc()'루틴을 호출하고 있습니까? – PaulProgrammer
while 루프는 새로운 변수 인'my $ return ...'을 사용하고'ps' 백틱 출력을 참조하지 않습니다. 또한 sleep 루프를 수행하는 곳에서 chk_proc을 호출하면, 그 범위 내에서'$ return' 변수를 업데이트 할 방법이 없으므로 루프가 무한 루프됩니다. – PaulProgrammer
경고는'my $ return ne ""를 사용하는 것입니다.'$ return'은 앞의'my'에 의해 실제로''''와 비교되는 새로운 변수입니다. undef 이외의 값. 그것을 피하려면'my'를 제거하십시오. –