#!/usr/bin/perl
# Learning RPerl, Section 4.5: Subroutine Variables, Variable Scope & Persistence
# [[[ PREPROCESSOR ]]]
# <<< PARSE_ERROR: 'ERROR ECOPAPL02' >>>
# <<< PARSE_ERROR: 'Global symbol "$autovivified" requires explicit package name' >>>
# [[[ 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 ]]]
'before defining quux(), have $autovivified = '
,
$autovivified
,
"\n"
;
# NO ERROR
sub
quux {
{
my
void
$RETURN_TYPE
};
$autovivified
= 23;
'inside quux(), have $autovivified = '
,
$autovivified
,
"\n"
;
# NO ERROR
$autovivified
++;
return
;
}
'after defining quux(), have $autovivified = '
,
$autovivified
,
"\n"
;
# NO ERROR
# [[[ OPERATIONS ]]]
quux();
'after calling quux(), have $autovivified = '
,
$autovivified
,
"\n"
;
# NO ERROR
quux();
'after calling quux(), have $autovivified = '
,
$autovivified
,
"\n"
;
# NO ERROR