Supongamos que la llamada era¿Cómo puedo capturar la línea de comando completa en Perl?
/usr/local/bin/perl verify.pl 1 3 de# > result.log
Dentro verify.pl
Quiero capturar toda la llamada anterior y añadirlo a un archivo de registro para fines de seguimiento.
¿Cómo puedo capturar toda la llamada tal como está?
'$ commandline = $ 0. "". (únete a "", @ARGV); 'para obtener un espacio entre el nombre del script y el primer parámetro, pero eso es solo un detalle estúpido –
No creo que puedas, ya que el shell simplemente' dup's el descriptor de archivo para STDOUT para apuntar a ese archivo de registro. Perl no tiene manera de saber si esto ha sucedido, hasta donde sé. (PODRÍA poder detectar si una redirección de entrada ha sucedido usando '-t') –
@Fredrik: Apenas un detalle estúpido: si el usuario intenta ejecutar ese comando, el nombre del script ha cambiado esencialmente ! :-) –