#!/usr/bin/perl # Learning RPerl, Section 4.4.1: Variadic Subroutines # [[[ PREPROCESSOR ]]] # <<< PARSE_ERROR: 'ERROR ECOPARP00' >>> # <<< PARSE_ERROR: 'Unexpected Token: my' >>> # [[[ 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 baz_variadic_dynamic { my $num_args = shift @ARG; my $arg2 = q{}; my $arg3 = q{}; my $arg4 = q{}; if ($num_args >= 2) { $arg2 = shift @ARG; } if ($num_args >= 3) { $arg3 = shift @ARG; } if ($num_args >= 4) { $arg4 = shift @ARG; } print 'have $num_args = ', $num_args, "\n"; print 'have $args2 = ', $arg2, "\n"; print 'have $args3 = ', $arg3, "\n"; print 'have $args4 = ', $arg4, "\n\n"; return; } # [[[ OPERATIONS ]]] baz_variadic_dynamic(1); baz_variadic_dynamic(2, 'howdy'); baz_variadic_dynamic(3, 'howdy', 'doody'); baz_variadic_dynamic(4, 'howdy', 'doody', 'time');