현재 파일의 존재 여부를 확인하는 스크립트를 여러 디렉토리에 저장하고 있습니다. 해시로 작성 중이며 동일한 서브 루틴을 수행해야하는 디렉토리에 동일한 숫자를 지정하려고합니다. 그래서 저는 값의 이름으로 부를 것입니다. 다른 말로하면, 이들 디렉토리가 값과 일치하면 같은 서브 루틴을 수행 할 것입니다. 그렇지 않으면리스트에 덤프되므로 요약에서 나중에 출력됩니다. 나는 아래 스크립트를 쓰고 있지만 mit는 값을 전혀 포착하지 못하기 때문에 올바르게 실행되지 않는 것 같습니다. 여기서 어디서 잘못 됐는지 알아? 참고 키 값이 아니라 해시 값을 호출하려고합니다.perl의 값을 호출하여 해시를 사용하는 방법
my %hashDir = (dirA => 1, dirB => 2, dirC =>3 , dirD => 1, dirE =>2, dirF =>1);
my $key = "";
my $value = "" ;
my $buf ;
my $d = "$basedir/$buf";
while (($key, $value) = each (%hashDir)) {
if (exists $hashDir{'1'}) {
print "test1\n" ;
subroutine1() ;
} elsif (exists $hashDir{'2'}) {
print "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ" ;
subroutine2() ;
} else {
$missingdir .= "\"$buf\" " ;
print "test3\n" ;
}
}
들여 쓰기도 수정했습니다. – Dan
$ basedir에는 어떤 가치가 있습니까? $ buf에 어디에서 값을 할당합니까? – tadmc