#!/usr/bin/perl # Learning RPerl, Chapter 4, Exercise 2 # Subroutine & driver to calculate the total of 1 to 1,000 # [[[ 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 # [[[ SUBROUTINES ]]] sub total { { my number $RETURN_TYPE }; ( my number_arrayref $input_numbers ) = @ARG; my number $retval = 0; foreach my number $input_number ( @{$input_numbers} ) { $retval += $input_number; } return $retval; } # [[[ OPERATIONS ]]] my number_arrayref $one_to_one_thousand = [ 1 .. 1_000 ]; my number $one_to_one_thousand_total = total($one_to_one_thousand); print 'The total of 1 to 1_000 is ', to_string($one_to_one_thousand_total), q{.}, "\n";