¿Qué curioso, no? Pues si hago lo que dices con cualquier otro comando, me funciona. Por ejemplo:
- Código: Seleccionar todo
[jordi@baby0 ~]$ perl -e 'print `pwd`'
/home/jordi
[jordi@baby0 ~]$
Pero en cambio el ping no funciona dentro de Perl.
Pero en cambio fuera de Perl sí:
- Código: Seleccionar todo
[jordi@baby0 ~]$ echo ping localhost| /bin/sh
PING localhost.localdomain (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost.localdomain (127.0.0.1): icmp_seq=1 ttl=64 time=0.051 ms
64 bytes from localhost.localdomain (127.0.0.1): icmp_seq=2 ttl=64 time=0.052 ms
64 bytes from localhost.localdomain (127.0.0.1): icmp_seq=3 ttl=64 time=0.053 ms
--- localhost.localdomain ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.051/0.052/0.053/0.000 ms
Aunque en realidad el que se encarga de hacer el ping siempre sería el programa ping dentro de /bin/sh. Perl solo haría de "intermediario" y en cambio en el caso del <<perl -e 'print `pwd`'>> lo hace bien el papel de "intermediario". ¿Qué raro, no?