考虑一个字符串,例如响应标头:HTTP/1.1 404 Not Found
。
我很好奇您是否可以使用智能匹配(~~
或双波浪号)运算符和正则表达式的组合来搜索不完整的匹配项或匹配项的子集。
my $head = q{HTTP/1.1 404 Not Found};
my @success = (200, 201);
my @failure = (404, 409);
# Array First
say q{Success} if @success ~~ $head;
say q{Fail} if @failure ~~ $head;
# Array Second
say q{Success} if $head ~~ @success ;
say q{Fail} if $head ~~ @failure ;
我知道这可以通过某种循环、grep 或 map 来完成。但我正在检查可以做什么~~
和不能做什么的可能性。
该文档非常具有描述性,并且对于大多数 lhs/rhs 条件似乎遵循[all in left side] == [all in right side]评估的返回 true。
也就是说,如果$head
只是$head=q{200}
它会匹配的数字(例如 )。
预期结果将类似于:
my $head = q{HTTP/1.1 201 OK};
my @success = qw(200 201);
say q{Success} if grep{$head =~ /$_/ } @success;