Estoy tratando de recopilar los valores de la línea de comandos usando Getopt::Std en mi script Perl.¿Cómo puedo establecer valores predeterminados usando Getopt :: Std?
use Getopt::Std;
$Getopt::Std::STANDARD_HELP_VERSION = 1;
getopts('i:o:p:');
my $inputfile = our $opt_i;
my $outputfile = our $opt_o;
my $parameter_value = our $opt_p;
Aquí las dos primeras variables ($ archivo de entrada, $ OutputFile) son obligatorios, pero la última variable ($ parameter_value) es opcional y se puede omitir.
Estoy tratando de establecer un valor por defecto a la última variable ($ parameter_value) cuando se ignora el indicador -p
en la línea de comando.
He intentado utilizar esto:
my $parameter_value = our $opt_p || "20";
Aquí sus pases el valor correcto cuando -p bandera se ignora en la línea de comandos. Pero el problema es cuando estoy proporcionando algún valor desde la línea de comando (por ejemplo -p 58), el mismo valor 20 se pasa al programa en lugar de 58 que pasé de la línea de comando.
¿Pueden ayudarme señalando los errores que estoy cometiendo aquí?
Gracias.
Bueno :) = +1 – DVK
thanan Sinan, Esto funciona muy bien y conserva el formato de mi codificación. Gracias una tonelada – Suren
Si está utilizando 5.10+, sería mejor usar '//' en lugar de '||' porque este último prueba la verdad, no la definición. Evitará que pueda pasar valores falsos (por ejemplo, 0). La forma prolija de obtener un comportamiento equivalente antes de 5.10 es '$ x = definido $ y? $ y: Z' donde 'Z' es el valor predeterminado. –