Come gestire l'opzione principale con Getopt
Domanda
Voglio gestire una caratteristica che mi sembra quasi naturale con i programmi, e non so come gestirlo con il pacchetto Getopt perl (non importa Std ot Long).
vorrei qualcosa di simile:
./perlscript <main option> [some options like -h or --output-file some_name]
Opzioni saranno trattati con - o -., Ma voglio essere in grado di permettere all'utente di darmi l'opzione principale e necessario, senza trattini
Is Getopt in grado di farlo, o devo gestire la cosa a mano?
Soluzione
Sembra come se si sta parlando non opzioni - gli argomenti di base della riga di comando. Essi possono essere raggiunti con @ARGV
. I moduli Getopt
passeranno argomenti regolari attraverso lo script unmolested:
use strict;
use warnings;
use Getopt::Long;
GetOptions (
'foo' => \my $foo,
'bar=s' => \my $bar,
);
my @main_args = @ARGV;
# For example: perl script.pl --foo --bar XXX 1 2 3
# Produces: foo=1 bar=XXX main_args=1 2 3
print "foo=$foo bar=$bar main_args=@main_args\n";
Altri suggerimenti
Se si desidera avere scritto senza un -
, ed è anche non facoltativo (come si specifiy), poi da alcun ragionamento non è un a tutti, ma un argomento . Si dovrebbe semplicemente leggere voi stessi tramite
my $mainarg = shift
e poi lasciare che Getopt fare il suo dovere. (Si potrebbe voler controllare in seguito $#ARGV
per verificare che l'argomento principale è stato effettivamente dato.)