我是 Perl 的新手,过去两天我一直在学习 Perl 基础知识。我正在逐渐将 Perl 脚本转换为 Java 程序。在 Perl 脚本中,我遇到了这段代码。
if( $arr[$i]=~/^0$/ ){
...
...
}
我知道这$arr[$i]
意味着i
从数组中获取第 th 元素arr
。
但这是什么=~/^0$/
意思?
他们将数组的元素与什么进行比较?
我搜索了这个,但我找不到它。
有人请解释我。
仅供参考,arr
包含浮动值。
我是 Perl 的新手,过去两天我一直在学习 Perl 基础知识。我正在逐渐将 Perl 脚本转换为 Java 程序。在 Perl 脚本中,我遇到了这段代码。
if( $arr[$i]=~/^0$/ ){
...
...
}
我知道这$arr[$i]
意味着i
从数组中获取第 th 元素arr
。
但这是什么=~/^0$/
意思?
他们将数组的元素与什么进行比较?
我搜索了这个,但我找不到它。
有人请解释我。
仅供参考,arr
包含浮动值。
if ($arr[$i]) =~ /^0$/)
大致等价于if ($arr[$i] eq "0")
,但不完全相同,因为它将匹配字符串 " 0
" 和 " 0\n
"。如果$arr[$1]
从文件或标准输入中读取并且尚未chomp
编辑,这可能是一个非常重要的区别。
if ($arr[$i] == 0)
另一方面,将匹配任何以非数字字符开头的字符串或后面没有数字字符的零/空格字符串,但如果字符串包含非空格、非数字,它将生成警告字符或仅包含空格(当然,警告已启用)。
^
并且$
是正则表达式锚,它说$arr[$i]
应该以开头0
并且紧随其后有字符串结尾。
它可以写成
if ($arr[$i] eq "0" or $arr[$i] eq "0\n")