exec
actúa de manera análoga a system
. La diferencia
es que el proceso padre es sustituido por el proceso a ejecutar y no se retorna al
programa inicial:
exec 'cat -n /etc/passwd'; die "no se pudo ejecutar cat: $!";
El nuevo proceso tendrá exactamente el mismo PID
que el viejo.
Al igual que con system
, si se usa la sintáxis con lista de argumentos
los metacaracteres shell no son interpretados.
$ cat exec.pl #!/usr/bin/perl -w exec '/bin/echo', 'Los argumentos son: ', @ARGV; lhp@nereida:~/Lperl/src$ ./exec.pl 'uno' '| ls ' '| who > quien' Los argumentos son: uno | ls | who > quien