匹配字符串
=~
运算符尝试将正则表达式(由/
分开)与字符串匹配:
my $str = "hello world";
print "Hi, yourself!\n" if $str =~ /^hello/;
/^hello/
是实际的正则表达式。^
是一个特殊字符,它告诉正则表达式从字符串的开头开始,而不是在中间的某个地方匹配。然后正则表达式试图按顺序找到以下字母 h
,e
,l
,l
和 o
。
正则表达式尝试匹配默认变量($_
),如果裸:
$_ = "hello world";
print "Ahoy!\n" if /^hello/;
你还可以使用不同的分隔符,在正则表达式之前使用 m
运算符:
m~^hello~;
m{^hello};
m|^hello|;
这在匹配包含/
字符的字符串时很有用:
print "user directory" if m|^/usr|;