Perl中的=〜/ ^ 0 $ /是什么意思?

时间:2013-05-29 13:47:30

标签: perl

我是Perl的新手,过去两天我一直在学习Perl的基础知识。 我正在逐步将Perl脚本转换为Java程序。 在Perl脚本中,我遇到了这段代码。

if( $arr[$i]=~/^0$/ ){
...
...
}

我知道$arr[$i]表示从数组i获取arr元素。

=~/^0$/是什么意思?

他们比较数组的元素是什么?

我搜索了这个,但我找不到它。

有人请解释一下。

仅供参考,arr包含浮动值。

3 个答案:

答案 0 :(得分:10)

if ($arr[$i]) =~ /^0$/) 大致等同于if ($arr[$i] eq "0"),但不完全相同,因为它会匹配字符串“0”和“{{1 }}”。如果从文件或标准输入中读取0\n并且它未被$arr[$1]编辑,则这可能是一个非常重要的区别。

另一方面,

chomp将匹配以非数字字符开头的任何字符串或者不跟随数字字符的零/空格字符串,尽管如果字符串将生成警告包含非空格,非数字字符或仅包含空格(当然也启用了警告)。

答案 1 :(得分:9)

^$是正则表达式锚点,其中$arr[$i]应以0开头,并且紧跟在其后面有字符串结尾。

可以写成

if ($arr[$i] eq "0" or $arr[$i] eq "0\n")

答案 2 :(得分:9)

=~binding operator

"Binary "=~" binds a scalar expression to a pattern match"
右侧的

/^0$/regex

^        Match the beginning of the line
$        Match the end of the line (or before newline at the end)

零没有特殊意义。