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?

È stato utile?

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.)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top