Мое личное предпочтение - использовать for
, регулярное выражение и блок do
:
for my $detail ($Details1, $Details2) {
for (keys %$detail) {
/^file$/ && do {
print " File: $detail->{file}{path}\n";
print "Bytes: $detail->{file}{size}\n";
};
/^directory$/ && do {
for (ref $result->{directory}) {
/^ARRAY$/ && do {
for my $entry (@{$detail->{directory}}) {
print "Directory: $entry->{path}\n";
}
};
/^HASH$/ && do {
print "Directory: $detail->{directory}{path}\n";
};
}
};
}
}
Не забывайте ;
после каждого блока do
.
РЕДАКТИРОВАТЬ: И не забудьте использовать next
или last
, если вы не хотите переходить к следующему случаю.