Peligros en el Uso de Prototipos

El operador mkdir tiene un prototipo $;$. Véanse las consecuencias de semejante prototipo:

lhp@nereida:/tmp$ perl -wde 0
main::(-e:1):   0
  DB<1> @a = ('tutu', '077')
  DB<2> x mkdir @a
0  1
  DB<3> !!ls -ltr | tail -1
drwxr-xr-x 2 lhp      lhp        4096 2008-04-16 14:05 2
  DB<4> x &mkdir @a
syntax error at (eval 7)[/usr/share/perl/5.8/perl5db.pl:628] line 2, near "&mkdir @a"
  DB<5> x mkdir $a[0], $a[1]
0  1
  DB<6> !!ls -ltr | tail -2
drwxr-xr-x 2 lhp      lhp        4096 2008-04-16 14:05 2
d--x--xr-x 2 lhp      lhp        4096 2008-04-16 14:07 tutu

Ejercicio 4.16.2   ¿Podría explicar el resultado?

Casiano Rodríguez León
Licencia de Creative Commons
Principios de Programación Imperativa, Funcional y Orientada a Objetos Una Introducción en Perl/Una Introducción a Perl
por Casiano Rodríguez León is licensed under a Creative Commons Reconocimiento 3.0 Unported License.

Permissions beyond the scope of this license may be available at http://campusvirtual.ull.es/ocw/course/view.php?id=43.
2012-06-19