Sto cercando di raccogliere i valori dalla riga di comando utilizzando Getopt::Std nel mio script Perl.Come posso impostare i valori predefiniti 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;
Ecco le prime due variabili ($ inputfile, $ OUTPUTFILE) sono obbligatori, ma l'ultima variabile ($ parameter_value) è opzionale e può essere ignorato.
Sto cercando di impostare un valore di default sull'ultima variabile ($ parametro_valore) quando il flag -p
viene ignorato nella riga di comando.
Ho provato ad utilizzare questo:
my $parameter_value = our $opt_p || "20";
Ecco i suoi passi il valore corretto quando -p flag è ignorato a riga di comando. Ma il problema è quando sto fornendo un valore dalla riga di comando (ad esempio -p 58), lo stesso valore 20 è passato al programma invece di 58 che ho passato dalla riga di comando.
Potete per favore aiutarmi indicando gli errori che sto facendo qui?
Grazie.
Buono :) = +1 – DVK
Grazie, Sinan, funziona molto bene e conserva il formato della mia codifica. Grazie mille. – Suren
Se usi 5.10+ sarebbe meglio usare '//' invece di '||' perché quest'ultimo prova per la verità, non per definizione. Vi impedirà di essere in grado di passare in valori falsi (ad esempio 0). Il modo prolisso per ottenere un comportamento equivalente prima di 5.10 è '$ x = definito $ y? $ y: Z' dove 'Z' è il valore predefinito. –