我有一个包含几个值的帖子中的数组,我正在尝试进行比较以查看数组是否包含某些字符串。
像这样:if ($q->param('tradesFour[]') =~ m/Steel/)
数组的datadump看起来像这样:
'tradesFour[]' => [
'Street/Road',
'Steel Erection'
],
但是当我这样做时if语句不正确,当我打印tradesFour []时它只给我第一个值。我怎样才能让它正常工作?
答案 0 :(得分:3)
在标量上下文中,CGI::param
只会返回第一个参数值。你必须放入列表上下文来检索所有这些。
您可以像这样编写测试
if (grep /Steel/, $q->param('tradesFour[]')) { ... }
其中检查列表中的所有值并返回与正则表达式匹配的数量。