in reply to Perl 5.10.1 - compare external program output with a list of known error codes
This may be going a bit too far, but you could use a dispatch table to do the work for you. It's reusable, and eliminates a whole slew of if/else/elsif statements...
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
Output:
Bloody input file is missing!
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Perl 5.10.1 - compare external program output with a list of known error codes
by malokam (Novice) on Sep 19, 2016 at 19:16 UTC | |
|
Re^2: Perl 5.10.1 - compare external program output with a list of known error codes
by malokam (Novice) on Sep 19, 2016 at 19:07 UTC | |
by stevieb (Canon) on Sep 19, 2016 at 19:17 UTC |