Cela dépend de ce que vous voulez exactement faire - il n'y a pas de valeur évidente pour une variable de boucle en dehors de sa boucle. Voulez-vous accéder à l'élément LAST de @bats? PREMIER élément? Un élément satisfaisant une condition particulière?
Pour le dernier élément, il suffit de faire:
my $hash_element_last;
for my $hash_element (@bats) {
# whatever logic
$hash_element_last = $hash_element;
}
my $emailsubject = "BAT - " . $hash_element_last->{'test_plan'};
Pour un autre élément, vous Stash aussi à l'intérieur d'une valeur distincte:
my $hash_element_remembered;
for my $hash_element (@bats) {
# whatever logic
# Use for the first element
$hash_element_remembered = $hash_element unless defined $hash_element_remembered;
# Use for the "special" element
$hash_element_remembered = $hash_element if (some_special_logic)
}
my $emailsubject = "BAT - " . $hash_element_remembered->{'test_plan'};
S'il vous plaît noter que pour la première/dernière, votre peut bien sûr utiliser simplement $bats[0]
et $bats[-1]
sans se souvenir spécialement de l'élément de boucle à l'intérieur de la boucle (en supposant que vous ne voulez pas "le dernier élément vu dans la boucle qui peut sortir via last
avant de terminer la boucle)