http://www.perlmonks.org?node_id=11131602


in reply to backslash found where operator expected at

I like to use the Ternaries as suggested in the book "Perl Best Practices".
use strict; use warnings; sub print_response; my $response_code = 200; my $response_content = "All's well!"; use constant OK => 0; use constant BAD_INPUT => 1; use constant SERVICE_ACCESS_ERROR => 31; use constant SERVICE_EXECUTION_ERROR => 32; use constant SERVICE_ERROR => 30; use constant UNDEFINED => 255; $_ = $response_code; my $return_status = /200/ ? OK : /400/ ? BAD_INPUT : /403/ ? SERVICE_ACCESS_ERROR : /500/ ? SERVICE_EXECUTION_ERROR : /503/ ? SERVICE_ERROR : UNDEFINED ; print_response $response_content if $return_status == OK; exit $return_status;

The constants may be overkill, but if the names are important enough to include as comments, why not make them part of the actual perl code?

UPDATE -- Corrected sense of if statement

Bill