2016-11-03 6 views
-2

배열의 중복 요소를 검사하는 루프가 있습니다. 문제는 배열에 컴파일러가 오류를 throw하는 8 진수가있는 경우입니다. 이 작품을 어떻게 만들 수 있습니까?배열 요소에서 8 진수 중복 확인 Perl

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

my %seen; 

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

8 및 9가 포함 된 8 진수는 의미가 없습니다. 당신이 그들에게 의미하려는 것은 무엇입니까? –

+0

이 배열에서 중복 된 숫자를 찾고 싶습니다. 이 코드를 컴파일하기 위해'https : // www.tutorialspoint.com/execute_perl_online.php'을 사용하고 있습니다. 이 오류는'잘못된 8 진수 숫자 '8'과 '9'를 main.pl 1 번 줄 끝에 말합니다. ' – taji01

+2

'은 숫자가 아니기 때문에 * 배열에 중복 된 숫자를 찾을 수 없습니다. –

답변

4

그것은 이러한 오류를 0가 (0x 또는 0.로 시작하는 것 이외의)이 다수의 진수 표현 될 것으로 예상되는 시작하는 문자 Illegal octal digit '8' and '9' at main.pl line 1, at end of line

을 던진다. 숫자의 8 진수 표현은 0-7 항만으로 구성됩니다 (숫자의 2 진 표현이 0과 1로만 구성된 방법과 유사 함).

이와 같이, 010895401은 숫자의 8 진수 표현이 될 것으로 예상되지만 그렇지 않습니다. 010895401은 의미가 없습니다.