我有这个循环检查数组中的重复元素。问题是一旦数组有八进制数,编译器就会抛出错误。我如何使这项工作?
my @array1 = (010895401, 010895401, 010895402, 010895403);
my %seen;
foreach my $octal (@array1)
{
next unless $seen{$octal}++;
print "'$octal' is duplicated.\n"
}
答案 0 :(得分:4)
它会抛出此错误
Illegal octal digit '8' and '9' at main.pl line 1, at end of line
以0
开头的文字(除了那些以0x
或0.
开头的文字)应该是数字的八进制表示。数字的八进制表示由0到7的数字组成(类似于数字的二进制表示如何仅由数字0和1组成)。
因此,010895401
应该是数字的八进制表示,但事实并非如此。 010895401
毫无意义。