{
print("for: ");
my $pass;
local $_ = 'fred';
for (; /./g ;) {
print("[$&]");
redo if ++$pass == 3;
}
print("\n");
}
{
print("while: ");
my $pass;
local $_ = 'fred';
while (/./g) {
print("[$&]");
redo if ++$pass == 3;
}
print("\n");
}
####
for: [f][r][e][][d]
while: [f][r][e][][d]
####
{
print("while: ");
my $pass;
local $_ = 'f';
while (/./g) {
print("[$&]");
redo if ++$pass == 1;
}
print("\n");
}
{
print("bare: ");
my $redid;
local $_ = 'fred';
{
/./g;
{
print("[$&]");
redo if !$redid++;
}
}
print("\n");
}
####
while: [f][]
bare: [f][f]
####
{
print("norm: ");
local $_ = 'fred';
while (print("<$&>"), /./g) {
print("[$&]");
}
print("\n");
}
{
print("next: ");
my $pass;
local $_ = 'fred';
while (print("<$&>"), /./g) {
print("[$&]");
next if ++$pass == 3;
}
print("\n");
}
{
print("redo: ");
my $pass;
local $_ = 'fred';
while (print("<$&>"), /./g) {
print("[$&]");
redo if ++$pass == 3;
}
print("\n");
}
####
norm: <>[f][r][e][d]
next: <>[f][r][e]<>[d]
redo: <>[f][r][e][]<>[d]
####
{
print("norm: ");
local $_ = 'fred';
for (; /./g ; print("<$&>"),1) { }
print("\n");
}
{
print("next: ");
local $_ = 'fred';
for (; /./g ; print("<$&>"),1) { next }
print("\n");
}
####
norm:
next: <><><><>
####
print("norm: ");
for (my $i; $i ? $i<2 : 'a'=~/./g; ++$i) {
print("[$&]");
}
print("\n");
print("next: ");
for (my $i; $i ? $i<2 : 'a'=~/./g; ++$i) {
print("[$&]");
next;
}
print("\n");
####
norm: [a][a]
next: [a][]