use strict; use warnings; my %errors = ( 'input file not found' => sub { print "Bloody input file is missing!\n"; }, 'signing key not found' => sub { print "meh, we're screwed!\n"; }, 'no keys found' => sub { print "This doesn't need encrypting anyway...\n"; } ); my $program_output3 = '3001:input file not found'; chomp $program_output3; # chomp any newline $program_output3 =~ s/^\d+://; # remove the digits/colon $errors{lc $program_output3}->(); # lowercase, just in case #### Bloody input file is missing!