From Code to Community: Sponsoring The Perl and Raku Conference 2025 Learn more

#!/usr/bin/perl
# Learning RPerl, Section 3.12.1: The Range for Loop
# [[[ PREPROCESSOR ]]]
# <<< EXECUTE_SUCCESS: 'in first loop, have $i = 0' >>>
# <<< EXECUTE_SUCCESS: 'in first loop, have $i = 1' >>>
# <<< EXECUTE_SUCCESS: 'in first loop, have $i = 2' >>>
# <<< EXECUTE_SUCCESS: 'in first loop, have $i = 3' >>>
# <<< EXECUTE_SUCCESS: 'in first loop, have $i = 4' >>>
# <<< EXECUTE_SUCCESS: 'in first loop, have $i = 5' >>>
# <<< EXECUTE_SUCCESS: 'in first loop, have $i = 6' >>>
# <<< EXECUTE_SUCCESS: 'in first loop, have $i = 7' >>>
# <<< EXECUTE_SUCCESS: 'in first loop, have $i = 8' >>>
# <<< EXECUTE_SUCCESS: 'in first loop, have $i = 9' >>>
# <<< EXECUTE_SUCCESS: 'in first loop, have $i = 10' >>>
# <<< EXECUTE_SUCCESS: 'between loops, have $x = 100' >>>
# <<< EXECUTE_SUCCESS: 'in second loop, have $i = 20' >>>
# <<< EXECUTE_SUCCESS: 'in second loop, have $i = 21' >>>
# <<< EXECUTE_SUCCESS: 'in second loop, have $i = 22' >>>
# <<< EXECUTE_SUCCESS: 'in second loop, have $i = 23' >>>
# <<< EXECUTE_SUCCESS: 'in second loop, have $i = 24' >>>
# <<< EXECUTE_SUCCESS: 'in second loop, have $i = 25' >>>
# <<< EXECUTE_SUCCESS: 'in second loop, have $i = 26' >>>
# <<< EXECUTE_SUCCESS: 'in second loop, have $i = 27' >>>
# <<< EXECUTE_SUCCESS: 'in second loop, have $i = 28' >>>
# <<< EXECUTE_SUCCESS: 'in second loop, have $i = 29' >>>
# <<< EXECUTE_SUCCESS: 'in second loop, have $i = 30' >>>
# <<< EXECUTE_SUCCESS: 'after loops, have $x = 100' >>>
# [[[ HEADER ]]]
use RPerl;
use strict;
our $VERSION = 0.001_000;
# [[[ CRITICS ]]]
## no critic qw(ProhibitUselessNoCritic ProhibitMagicNumbers RequireCheckedSyscalls) # USER DEFAULT 1: allow numeric values & print operator
## no critic qw(RequireInterpolationOfMetachars) # USER DEFAULT 2: allow single-quoted control characters & sigils
# [[[ OPERATIONS ]]]
for my integer $i ( 0 .. 10 ) {
# do stuff inside first loop, using $i; fine
print 'in first loop, have $i = ', $i, "\n";
}
# do stuff outside loops, not using $i; fine
my integer $x = 100;
print 'between loops, have $x = ', $x, "\n";
# fine
for my integer $i ( 20 .. 30 ) {
# do stuff inside second loop,
# using totally independent instance of $i
print 'in second loop, have $i = ', $i, "\n";
}
print 'after loops, have $x = ', $x, "\n";