taj*_*i01 1 variables perl compare compiler-errors
我想比较$ num1和$ num2中的前7个字符.当我编译它时,我得到一个奇怪的输出.输出与$ num1或$ num2不匹配.我如何比较这两个变量?
输出:num1 [2739073] num2 [2739074]
$num1 = 012345601;
$num2 = 012345602;
#$num1 =~ s/^0+//;
#$num2 =~ s/^0+//;
if (substr($num1, 0, -2) == substr($num2, 0, -2)) {
print "num1[$num1]" . " num2[$num2]\n";
} else {
print "Not equal\n";
}
Run Code Online (Sandbox Code Playgroud)
问题#1:
在Perl中,您将字符串与eq运算符进行比较,而不是==:
正确的比较是:
if ( substr($num1, 0, 7) eq substr($num2, 0, 7) ) {
# ...
}
else {
# ...
}
Run Code Online (Sandbox Code Playgroud)
问题#2:
以0开头的数字被解释为八进制,你可以阅读更多相关信息perldoc perlnumber
12345601 (octal) == 2739073 (decimal)
12345602 (octal) == 2739074 (decimal)
Run Code Online (Sandbox Code Playgroud)
问题#3:
失踪use strict;和use warnings;