#!/usr/bin/perl # Learning RPerl, Section 4.4: Subroutine Arguments # [[[ PREPROCESSOR ]]] # <<< EXECUTE_SUCCESS: 'have $bar_int * 3 = 12' >>> # <<< EXECUTE_SUCCESS: 'have $bar_str x 3 = repeatrepeatrepeat' >>> # [[[ 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 ]]] sub bar_args_static { { my void $RETURN_TYPE }; # PERLTIDY BUG, failure to put a space between $arg3 and closing ) # (my string $arg_type, my integer $bar_int, my string $bar_str) = @ARG; ( my string $arg_type, my integer $bar_int, my string $bar_str ) = @ARG; # NEED UPGRADE, CORRELATION #rp035: allow multi-line subroutines & other code blocks, where they would be less than 160 chars if on a single line # if ($arg_type eq 'integer') { # print 'have $bar_int * 3 = ', $bar_int * 3, "\n"; # } # else { # print 'have $bar_str x 3 = ', $bar_str x 3, "\n"; # } if ($arg_type eq 'integer') { print 'have $bar_int * 3 = ', $bar_int * 3, "\n"; } else { print 'have $bar_str x 3 = ', $bar_str x 3, "\n"; } return; } # [[[ OPERATIONS ]]] bar_args_static('integer', 4, q{}); bar_args_static('string', 0, 'repeat');