Ruby : attention à la base 8 (octal)

Hier un collège me dit, je comprends pas j'ai une erreur quand j'itère sur mon array.

Exemple simplifié du code : 

arr = [03,09,42,57]

Voici l'erreur :

Invalid octal digit

En fait en ruby vous pouvez déclarer un entier en hexa, décimal, binaire.

hexa : 0x81 => 129

binaire : 0b11 => 3

décimal : 42 => 42

octal : 010 => 8.

Le fait de mettre un zero devant permet de dire à ruby que l'on travaille avec des nombres en octal et en octal les digits 8, 9 n'existe pas, donc si vous faites 08 vous allez avoir une erreur (de la même manière que 0b2 va provoquer une erreur...).

En fait l'erreur vient du développeur qui met des 0 non significatif devant ses entiers...