Perl Glob возвращает ложное срабатывание

То, что казалось простым кусочком кода, наверняка не соответствовало тому, что я хотел.

Может кто-нибудь объяснить мне, что он делает и почему?

my $dir = './some/directory';

if ( -d $dir && <$dir/*> ) {
    print "Dir exists and has non-hidden files in it\n";
}
else {
    print "Dir either does not exist or has no non-hidden files in it\n";
}

В моем тестовом случае каталог существовал и был пустым. Тем не менееthen (первый) разделif срабатывает вместоelse раздел, как и ожидалось.

Мне не нужно, чтобы кто-нибудь подсказывал, как достичь того, чего я хочу достичь. Я просто хочу понять интерпретацию этого кода в Perl, которая определенно не соответствует моей.

Ответы на вопрос(2)

Ваш ответ на вопрос