Quantcast
Channel: Recent Questions - Stack Overflow
Viewing all articles
Browse latest Browse all 12111

Elegant way to catch "for loop reached last element"?

$
0
0

Sometimes in Perl, I write a for / foreach loop that iterates over values to check a value against a list. After the first hit, the loop can exit, as we've satisfied my test condition. For example, this simple code:

my @animals = qw/cat dog horse/;foreach my $animal (@animals){  if ($input eq $animal)  {    print "Ah, yes, an $input is an animal!\n";    last;  }}# <-----

Is there an elegant way - an overloaded keyword, maybe - to handle "for loop reached last element"? Something to put at the arrow above?

I can think of ways to do this, like creating / setting an additional $found variable and testing it at the end.... But I was hoping Perl might have something else built in, like:

foreach my $animal (@animals){  if ($input eq $animal)  {    print "Ah, yes, an $input is an animal!\n";    last;  }} finally {  print "Sorry, I'm not sure if $input is an animal or not\n";}

which would make this test more intuitive.


Viewing all articles
Browse latest Browse all 12111

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>