Perl next loop FAQ: Can you demonstrate how to use the Perl next
operator in a for
loop?
Problem: You're writing code for a Perl loop, and you need to write some logic to skip over the current element in the loop, and move on to the next loop element.
The Perl loop next operator
When you're in a Perl for
loop (iterating over an array or hash), and you want to move on to the next element in your array or hash, just use the Perl next
operator, like this:
for (@array) { if (SOME_TEST_CONDITION) { # move on to the next loop element next; } # more code here ... }
More Perl next examples
You can see some decent examples of the Perl next operator in the following code. In the code just before this for
loop I had just read all the records of a Perl script into an array named @records
, and in the Perl for loop shown below I'm skipping over all the strings I'm not really interested in:
for (@records) { # skip blank lines next if /^[ \t]*$/; # skip comment lines next if /#/; # skip printing lines next if /print/; next if /printf/; # much more code here ... }
Perl next operator - Summary
As you can see, you use the Perl next
operator to skip to the next element in a Perl for
loop, and there are at least two ways to use the next
operator, as shown in the examples above: inside an if
statement, or before an if
statement.
Related - how to break out of a Perl for loop
In a related note, you can break out of a Perl for
loop using the Perl last
operator, like this:
if (SOME_TEST_CONDITION) { last; }
The Perl last
operator works just like the break
operator in other languages, breaking out of the loop when the last
operator is encountered. You can read more about the last
operator in my Perl for loop break tutorial.