我試圖將grep與變量正則表達式一起使用。我認爲下面的程序不會打印任何東西,因爲正則表達式/food/
與我的數組中的任何項目都不匹配。當使用或不使用qr時,Perl的grep會給出不同的結果
#!/usr/bin/perl
use strict;
use warnings;
use feature 'say';
my @arry = qw/foo bar baz/;
my $regex = "food";
say join ",", grep { qr/$regex/ } @arry;
但產量否則說:
foo,bar,baz
當我拿出qr
,我得到我預期的效果(即沒有匹配)。 qr
做什麼導致這種情況?
我會說它「'qr //'*創建* rege x對象;它不會進行任何匹配,直到通過'=〜'使用該對象。由於在布爾上下文中正則表達式對象是真的,所以grep通過了所有的東西。「 – ysth