in reply to grep not working as expected
Regular expressions are interpolated, but not evaluated.grep { /$q->param('report_type')/ } (qw/case_id hosp_alias sender rece +iver/)
What you want instead is:
Or:grep { $q->param('report_type') eq $_ } (qw/case_id hosp_alias sender +receiver/)
And to avoid checking a long list you can get only the first match by using List::Util as follows:my $report_type = $q->param('report_type'); grep { $report_type eq $_ } (qw/case_id hosp_alias sender receiver/)
use List::Util qw( first ); if ( first { $report_type eq $_ } (qw/case_id hosp_alias sender receiv +er/)) { }
|
|---|