Perl 5.005 delta release : EXPR foreach EXPR syntax

The delta release of Perl 5.005 introduced a new syntax for the foreach loop, which allows for more flexible iteration over arrays and hashes.

The new syntax is:


Here, EXPR is an optional expression that is evaluated once, before the loop begins. LIST is an expression that evaluates to a list of values that the loop will iterate over. BLOCK is a block of code that is executed once for each value in the list.

For example, the following code uses the new syntax to iterate over a hash:

Copy code
my %hash = ('a' => 1, 'b' => 2, 'c' => 3);
foreach my $key (keys %hash) {
    print "$key: $hash{$key}\n";

In this example, EXPR is not used, LIST is the list of keys in the %hash hash, and BLOCK prints out each key-value pair.

Note that the old syntax for foreach loops is still supported:

foreach VAR (LIST) BLOCK

This syntax is equivalent to the new syntax when VAR is a scalar variable. However, the new syntax allows for more flexibility when iterating over arrays and hashes.
0 Jhon77 3/12/2015

(Thread closed)