getopt
Honza Pazdziora
adelton na fi.muni.cz
Úterý Únor 24 20:17:27 MET 1998
Rostislav Matl <xmatl na fi.muni.cz> writes:
> #! /usr/bin/perl -w
>
> use Getopt::Std;
>
> #zpracujeme parametry:
> getopt('h');
> if ($opt_h)
> {
> print "HELP!";
> exit 0;
> }
>
> Tento jednoduchy skript je pro me zahadou. Nefunguje totiz, jak by mel
> (alespon podle dokumentace). Predpokladal jsem, ze takto zavolana fce
> getopt nastavi promennou $opt_h
> na 1, ovsem nestalo se tak. Na dalsim radku ji uz Perl oznacil za
> neinicializovanou.
> Delam neco spatne?
No, spatne asi ne, spis jinak, nez se predpoklada. Pohledem do zdrojaku
jsem zjistil, ze text
Pass one argument which is a string containing all switches
that take an argument. For each switch found, sets $opt_x
(where x is the switch name) to the value of the argument,
or 1 if no argument.
je potreba brat vazne (resp. doslova). Cili: ten retezec k getopt je
seznam switchu s argumenty. Ta druha veta z te manove stranky ale
nerika, ze jedine mozne switche jsou ty s argumenty, popsane volanim
getopt. Ta rika, ze pokud je nalezen switch, je zpracovan.
Pokud ale date -h, neni to switch s argumentem, je to proste switch
bez argumentu. A pokud reknete getopt('h'); rikate, ze chcete, aby to
-h ten argument melo. A ono ho nema, a proto se taky zadne $opt_h
nastavovat nebude.
Reseni? getopt('');
Doufam, ze to pomuze,
--
------------------------------------------------------------------------
Honza Pazdziora | adelton na fi.muni.cz | http://www.fi.muni.cz/~adelton/
I can take or leave it if I please
------------------------------------------------------------------------
Další informace o konferenci Perl