Próbuję zebrać wartości z wiersza poleceń przy użyciu Getopt::Std w moim skrypcie Perl.Jak ustawić wartości domyślne za pomocą 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;
Oto pierwsze dwie zmienne ($, $ plik_wyjściowy plik_wejściowy) są obowiązkowe, ale ostatnia zmienna ($ PARAMETER_VALUE) jest opcjonalny i może być ignorowane.
Próbuję ustawić wartość domyślnie na ostatnią zmienną ($ wartość_parametru), gdy flaga -p
jest ignorowana w wierszu polecenia.
Próbowałem za pomocą tego:
my $parameter_value = our $opt_p || "20";
Tutaj przechodzi jego prawidłowa wartość -P gdy flaga jest ignorowany w wierszu poleceń. Ale problem polega na tym, że dostarczam pewną wartość z wiersza poleceń (na przykład -p 58), ta sama wartość 20 jest przekazywana do programu zamiast do 58, które przekazałem z wiersza poleceń.
Czy możesz mi pomóc, wskazując błędy, które tu popełniam?
Dziękuję.
Dobrze :) = +1 – DVK
thanx Sinan, Działa to bardzo dobrze i zachowuje format mojego kodowania. Za toną. – Suren
Jeśli używasz wersji 5.10+, lepiej użyć '//' zamiast '||', ponieważ ten ostatni testuje prawdę, a nie zdefiniowaną. Zapobiegnie to przekazywaniu fałszywych wartości (np. 0). Długotrwałym sposobem uzyskania ekwiwalentnego zachowania przed 5.10 jest '$ x = zdefiniowany $ y? $ y: Z' gdzie 'Z' jest wartością domyślną. –