perl - 比较变量在Perl中的前导零

标签 perl variables compiler-errors compare

我正在尝试比较$ num1和$ num2中的前7个字符。当我编译它时,我得到一个奇怪的输出。输出与$ num1或$ num2不匹配。我如何比较这两个变量?

OUTPUT: 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";
}

最佳答案

问题1:

在Perl中,您将字符串与 eq 运算符进行比较,而不是==进行比较:

正确的比较将是:

if ( substr($num1, 0, 7) eq substr($num2, 0, 7) ) {
    # ...
}
else {
    # ...
}

问题2:

以0 in开头的数字被解释为八进制,您可以在 perldoc perlnumber 中了解更多信息
12345601 (octal) == 2739073 (decimal)
12345602 (octal) == 2739074 (decimal)

问题3:

缺少use strict;use warnings;

关于perl - 比较变量在Perl中的前导零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40389551/

相关文章:

c - "fasttop"是什么意思?

javascript - 有没有办法打印动态变量?

java - 如何在 if 语句中使用全局变量

linux - 当我包含atomic.h时,GCC说没有这样的文件,为什么?

c++ - C++ 中的链接错误

mysql - Perl 代码始终连接到同一个 MySQL 数据库,尽管它被配置为连接到不同的服务器

multithreading - 无法在线程之间共享套接字perl

ios - 在 Xcode 10 上出现错误 : "Swift does not support the SDK ' iPhoneSimulator11. 2.sdk'"

json - 这些 JSON Perl 模块之间有什么区别?

JavaScript 或 jQuery : Saving input value into variable which is saved into another variable