Если вы вернете два (или любое число в этом отношении) хэша из подпрограммы, результатом будет один хеш.Вы не сможете отделить исходные хэши от результата обычным способом.Возврат хеш-ссылок не вызовет этой проблемы.
Предположим, foo()
возвращает две хеш-ссылки, когда шаблон соответствует, и возвращает -1, если он не совпадает.
my ( $value_1, $value_2 ) = foo;
if ( $value_1 == -1 ) {
# pattern did not match
}
else { # for strict checks: elsif ( ref $value_1 eq 'HASH' && ref $value_2 eq 'HASH' ) {
# pattern matched
}