J'avais oublié undef.
Je pense que les deux méthodes sont valables (0 et undef), mais j'ai une petite préférence pour undef, qui fait plus propre.
De fait en C, NULL c'est 0, mais ce n'est censé s'appliquer qu'aux pointeurs pour dire qu'ils sont non définis. Donc je suis de l'avis de pospos pour dire que undef est bien l'équivalent de NULL en PERL, et non 0.