Para obter 12 , você precisa:
substr $number, 0, 2
A sintaxe para substr é:
substr $var, OFFSET, LENGTH
Então, quando você faz:
substr $number ,0,1
o OFFSET será 0 e LENGTH será 1 .
perl é indexado com zero, ou seja, a indexação começa em 0 e o comprimento da subseqüência selecionada é 1 , portanto, você obterá apenas 1 na saída esperada.