#!/usr/bin/perl
# Learning RPerl, Section 4.5: Subroutine Variables, Variable Scope & Persistence
# [[[ PREPROCESSOR ]]]
# <<< EXECUTE_SUCCESS: 'inside quux(), have $local_intermittent = 23' >>>
# <<< EXECUTE_SUCCESS: 'inside quux(), have $local_intermittent = 23' >>>
# [[[ HEADER ]]]
use
RPerl;
use
strict;
use
warnings;
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
# [[[ SUBROUTINES ]]]
#print 'before defining quux(), have $local_intermittent = ', $local_intermittent, "\n"; # YES ERROR
# NEED UPGRADE, CORRELATION #rp035: allow multi-line subroutines & other code blocks, where they would be less than 160 chars if on a single line
#sub quux {
# { my void $RETURN_TYPE };
# my integer $local_intermittent = 23;
# print 'inside quux(), have $local_intermittent = ', $local_intermittent, "\n"; # NO ERROR
# $local_intermittent++;
# return;
#}
sub
quux { {
my
void
$RETURN_TYPE
};
my
integer
$local_intermittent
= 23;
'inside quux(), have $local_intermittent = '
,
$local_intermittent
,
"\n"
;
$local_intermittent
++;
return
; }
#print 'after defining quux(), have $local_intermittent = ', $local_intermittent, "\n"; # YES ERROR
# [[[ OPERATIONS ]]]
quux();
#print 'after calling quux(), have $local_intermittent = ', $local_intermittent, "\n"; # YES ERROR
quux();
#print 'after calling quux(), have $local_intermittent = ', $local_intermittent, "\n"; # YES ERROR