#!/usr/bin/perl # [[[ 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 # [[[ OPERATIONS ]]] # USER NOTE: the Operator (not OperatorVoid) production rule matched by 'print' requires parentheses and filehandle my integer $open_success = open my filehandleref $HOWDY, '>', '/tmp/howdy'; if ( not $open_success ) { croak 'ERROR: Failed to open file /tmp/howdy for writing, croaking'; } # USER NOTE: return values of Operator print are purposefully ignored here, possibly ignoring write errors ( print {$HOWDY} 2 ); ( print {$HOWDY} 2, 3, 4, "\n" ); ( print {$HOWDY} 2.31 ); ( print {$HOWDY} 2.31, 3.21, 4.23, "\n" ); ( print {$HOWDY} 'howdy' ); ( print {$HOWDY} 'howdy', 'doody', 'foobar', "\n" ); ( print {$HOWDY} 'howdy', 2.31, 'doody', 3.21, 'foobar', 4.23, "\n" ); # USER NOTE: return values of Operator print are utilized here, catching write errors # long format, 2 RPerl Operations my integer $print_success = ( print {$HOWDY} 2 ); if ( not $print_success ) { croak 'ERROR: Failed to write to file /tmp/howdy, croaking'; } # short format, 1 RPerl Operation #if (not( print {$HOWDY} 'howdy', 2.31, 'doody', 3.21, 'foobar', 4.23, "\n" ) ) if (not ( print {$HOWDY} 'howdy', 2.31, 'doody', 3.21, 'foobar', 4.23, "\n" ) ) { croak 'ERROR: Failed to write to file /tmp/howdy, croaking'; } if ( not close $HOWDY ) { croak 'ERROR: Failed to close file /tmp/howdy after writing, croaking'; }