# [[[ HEADER ]]] use RPerl; package MyClass01LowRPerlOld; use strict; use warnings; our $VERSION = 0.001_000; # [[[ OO INHERITANCE ]]] use parent qw(RPerl::CompileUnit::Module::Class); use RPerl::CompileUnit::Module::Class; # [[[ 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 ## no critic qw(ProhibitMultiplePackages ProhibitReusedNames ProhibitPackageVars) # USER DEFAULT 8: allow additional packages # [[[ OO PROPERTIES ]]] our hashref $properties = { bar => my integer $TYPED_bar = 23 }; # [[[ SUBROUTINES & OO METHODS ]]] our void::method $double_bar_save = sub { ( my MyClass01LowRPerlOld $self ) = @ARG; $self->{bar} = $self->{bar} * 2; return; }; our integer::method $double_bar_return = sub { ( my MyClass01LowRPerlOld $self ) = @ARG; return $self->{bar} * 2; }; 1; # end of class # [[[ HEADER ]]] use RPerl; package MySubclass01LowRPerlOld; use strict; use warnings; our $VERSION = 0.001_000; # [[[ OO INHERITANCE ]]] use parent -norequire, qw(MyClass01LowRPerlOld); INIT { MyClass01LowRPerlOld->import(); } # [[[ 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 ## no critic qw(ProhibitMultiplePackages ProhibitReusedNames ProhibitPackageVars) # USER DEFAULT 8: allow additional packages # [[[ OO PROPERTIES ]]] our hashref $properties = { bax => my integer $TYPED_bax = 123 }; # NEED FIX: bax should be readonly, need to change into a constant??? # [[[ SUBROUTINES & OO METHODS ]]] our void::method $triple_bax_save = sub { ( my MySubclass01LowRPerlOld $self ) = @ARG; $self->{bax} = $self->{bax} * 3; return; }; our integer::method $triple_bax_return = sub { ( my MySubclass01LowRPerlOld $self ) = @ARG; return $self->{bax} * 3; }; our integer::method $multiply_bax_return = sub { ( my MySubclass01LowRPerlOld $self, my integer $multiplier ) = @ARG; if ( $multiplier < 10 ) { return $self->{bax} * $multiplier; } return $self->{bax} * 3; }; 1; # end of subclass