检查数组元素Perl中的八进制重复项

时间:2016-11-03 15:53:09

标签: arrays perl loops octal

我有这个循环检查数组中的重复元素。问题是一旦数组有八进制数,编译器就会抛出错误。我如何使这项工作?

my @array1 = (010895401, 010895401, 010895402, 010895403); 

my %seen;

foreach my $octal (@array1)
{
    next unless $seen{$octal}++;
    print "'$octal' is duplicated.\n"
}

1 个答案:

答案 0 :(得分:4)

  

它会抛出此错误Illegal octal digit '8' and '9' at main.pl line 1, at end of line

0开头的文字(除了那些以0x0.开头的文字)应该是数字的八进制表示。数字的八进制表示由0到7的数字组成(类似于数字的二进制表示如何仅由数字0和1组成)。

因此,010895401应该是数字的八进制表示,但事实并非如此。 010895401毫无意义。