Schrift
[thread]7128[/thread]

keine option



<< >> 4 Einträge, 1 Seite
Gast Gast
 2005-07-12 05:04
#56349 #56349
Hallo, habe folgenden code:

Code: (dl )
1
2
3
use Getopt::Std;
getopts("x", \%opt);
print opt{x};

wenn ich jetzt das script mit:
Code: (dl )
progname -x lol

starte, ist opt{x} 1 und nicht lol.

Kann mit das jemand erklären?
Danke :)
florg
 2005-07-12 08:06
#56350 #56350
User since
2005-07-12
1 Artikel
BenutzerIn
[default_avatar]
Hallo,

in Getopt::Std werden zwei verschiedene Funktionen beschrieben: 'getopt' und 'getopts':

Code: (dl )
getopt("x", \%opt);


Damit funktioniert dein Code dann auch.
Die Alternative ist, noch ":" mitzugeben:

Code: (dl )
getopts("x:",\%opt);


HTH,

florg
J-jayz-Z
 2005-07-12 11:59
#56351 #56351
User since
2005-04-13
625 Artikel
BenutzerIn
[Homepage] [default_avatar]
So, wie du das geschrieben hast, wird nur getestet, ob der Schalter -x aktiv ist.
Wenn du
Code: (dl )
getopts("x:",\%opt);

schreibst, wie es florg bereits geschrieben hat, wird durch den Doppelpunkt dem script gesagt, das nach dem Schalter -x noch ein Argument erwartet wird.
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="5065726c2d436f6d6d756e697479"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'

http://perl-tutor.de
Strazke
 2005-07-12 17:22
#56352 #56352
User since
2005-07-11
120 Artikel
BenutzerIn
[default_avatar]
super, danke. :)
<< >> 4 Einträge, 1 Seite



View all threads created 2005-07-12 05:04.