下面的替换是什么意思?
if($sr_no =~ m/^0/)
{
$sr_no =~ s/^(0*)(.*)/$2/;
}
这是一种笨拙的写法$sr_no =~ s/^0+//,即删除所有前导零。基本上是无用的if,因为无论如何替换执行相同的逻辑(即如果没有匹配则不替换)。
它从字符串中去除前导零。
虽然我会把它写成
s/^0+//
即,将一个或多个 ( +) 前导 ( ^) 零 ( 0) 替换为空 ( //)。
将所有(由于*)前面(由于^)零替换为后面的所有内容(由于$2 = (.*))
sr_no与正则表达式匹配^0
0^(0*)(.*)第二组
0s。也可以看看:
m//ands///运算符的详细信息。