1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/usr/bin/perl -w
use strict;
use Getopt::Long;
my %Args = ();
my $option = "";
my $help = 0;
my $InOpts = GetOptions( \%Args,
'o|option=s' => \$option,
'h|help' => \$help ) or die "usage option ...";
print "$help\n";
print "Usage ..." if( ! $InOpts);
print "help ..." if( $help );
1 2 3 4 5 6 7 8 9 10 11
use strict; use warnings; use Getopt::Long; my @option; my $InOpts = GetOptions( 'o|option:s' => \@option ) or die "usage option ..."; die "Too much -o!!! @option \n" if @option>1;
[b]$#[/b]... liefert den letzten Index im Array.
QuoteAber wieso > 2?
Ich dachte, die Option darf nur einmal vorkommen!
@option>2 bedeutet: scalar @option > 2 und das bedeutet Anzahl der Werte größer 2.
Du sagtest doch -o -o ist nicht erlaubt!?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/usr/bin/perl -w
use strict;
use Getopt::Long;
my %Args = ();
my @option = "";
my $option = "";
my $help = 0;
print "ARGV: @ARGV\n";
my $InOpts = GetOptions( \%Args,
'o|option=s' => \@option,
'h|help' => \$help ) or die "usage option ...";
print "Usage ..." if( ! $InOpts);
print "help ..." if( $help );
my $array_anz = @option;
print "ArrayInfo: Optionen: @option ArrayAnz: $array_anz \$#: $#option\n";
print "too much -o @option !!\n" if (@option>1);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/usr/bin/perl -w
use strict;
use Getopt::Long;
my %Args = ();
my @option = ();
my $option = "";
my $help = 0;
print "ARGV: @ARGV\n";
my $InOpts = GetOptions( \%Args,
'o|option=s' => \@option,
'h|help' => \$help ) or die "usage option ...";
print "Usage ..." if( ! $InOpts);
print "help ..." if( $help );
my $array_anz = @option;
print "ArrayInfo: Optionen: @option ArrayAnz: $array_anz \$#: $#option\n";
print "too much -o @option !!\n" if (@option>1);
1
2
if ( ($#ARGV + 1) < 1 ) { die "$0 erfordert ein Argument.\n"; }
mit Erklärung: keine Argument ...
if ( @ARGV == 0 ) { die "$0 erfordert ein Argument.\n"; }
1
2
3
4
5
6
7
8
9
### Oops! damit ist dann auch der alte Inhalt von @ARGV futsch
$ perl -E 'say "Array is leer." if @ARGV = 0'
Array is leer.
$ perl -E 'say "Array is leer." if 0 = @ARGV'
Can't modify constant item in scalar assignment at -e line 1, at EOF
Execution of -e aborted due to compilation errors.
$
2015-09-10T14:24:35 bora99sorry, habe das Array-Handling nicht sauber durchgeführt , auch die Initalisierung, so jetzt sollte es passen
Quote
my @option = "";