필자의 perl 스크립트가 if 문을 건너 뛰고 while 루프를 먼저 실행하는 것으로 보입니다. while 루프를 꺼내면 예상되는 동작 (일부 텍스트 인쇄 및 진행)을 얻게됩니다. 나는 perl 경험이 없기 때문에 이것이 내가 모르는 언어의 내부인지 궁금해하고있다.while 루프가 while 루프를 선호하여 perl 스킵 구문을 사용하는 이유
$choice = <STDIN>;
chomp($choice);
if($choice == 1)
{
print 'snap.exe';
@args = ('snap.exe');
}
elsif($choice == 2)
{
print 'v2u.exe';
@args = ('v2u.exe');
}
elsif($choice == 3)
{
print 'ImageMagick';
@args = ('import','-depth','8','-window');
}
while(1)
{
#dostuff
}
코드 호출 방법을 보여줍니다. STDIN은 명령 행에 뭔가를 전달한다고 가정합니다. 1, 2 또는 3과 일치하지 않으면 if는 건너 뜁니다. – toolic
버퍼링 문제가 아닙니까? 'if-elsif' 브랜치 전체 앞에'$ | = 1; – raina77ow
출력이 버퍼링되고 있습니다 :'print "snap.exe \ n";'출력을 강제합니다 – RobEarl