Leser: 27
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
26
27
28
29
30
31
32
33
34
$|++; # aktiviert Autoflush fuer STDOUT
use FindBin ();
use lib "$FindBin::Bin";
use strict;
use warnings;
use XML::Twig;
use Term::ANSIColor qw(:constants);
my $sid= parameter("sid=");
print "\n\t die sid lautet:".$sid."\n";
sub parameter{
my $search=$_[0];
my $parameter="";
foreach (@ARGV) {
print $_;
print "\n\t suchstring: ".$search." \n";
#$parameter=~ /$search/i;
#print "parameter: ".$parameter."\n";
#print =~ /$search/i;
last if $_= /$search/i;
#print "test";
}
return $parameter;
}
1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/perl -w
use strict;
my %arguments;
for (@ARGV) {
my ($key, $value) = split /=/, $_;
$arguments{$key} = $value;
}
print "$arguments{'sid'}\n";
perl args.pl "sid = sss" "instno = 22" "solmankey = 22222222"
my ($key, $value) = split /\s*=\s*/, $_, 2;
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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
#!/usr/bin/perl use strict; use warnings; { package cmdline; # create new object sub new { my $class=shift; # restliche Parameter lesen # Bei Arrayreffenz diese lesen, # ansonsten Array annehmen my $argv=[]; if(ref($_[0]) eq 'ARRAY') { $argv = shift; } else { $argv=[@_]; } bless($self,$class); $self->_parse($argv); return $self; } # private parse sub _parse { my $self=shift; my $argv=shift; # sinnvolle Werte vordefinieren: # das ist nützlich, # wenn man allgemeine Steueroptionen wie "verbose" hat $self->{verbose}=0; # parsen for(@{$argv}) { my ($key, $value)=split(/\s*=\s*/,$_,2); # eventuell währen hier noch ein paar Test sinnvoll, # ob die Werte gültig sind. # z.B. # wenn Nicht-Wortzeichen enthalten sind überspringen next if($key=~/\W/); # wenn sid keine Zahl ist überspringen next if($key eq 'sid' and $value !~/^\d+$/); $self->{$key}=$value; } return 1; } # get value for key sub get { my $class=shift; my $key=shift; return undef unless has($key); return $self->{$key}; } # get all keys sub keys { return keys(%{$_[0]}) } # test for key sub has { return exists($_[0]->{$_[1]}); } # set a key sub set { $_[0]->{$_[1]}=$_[2]; return 1; } # Beispiel für eine Abkürzung: # so braucht man nicht # $cmds->get('verbose') > 0 # schreiben sub verbose { return $_[0]->{verbose} > 0; } 1; } package main; my $cmds = cmdline->new(@ARGV); # erst fragen ob die Option existiert, # wenn nicht -> Fehler. my $sid = -1; if( !$cmds->has('sid') ) { # wenn "verbose" > 0 mit einer richtigen Fehlermeldung sterben, # ansonsten mit einem Fehler ( exit-Wert > 0 ) sterben if($cmds->verbose) { die 'Bitte "sid" setzen!'; } else { exit 1; } } $cmds->get('sid');
2009-06-02T21:14:05 wenzeperl args.pl sid=sss instno=22 solmankey=22222222
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
26
27
28
29
30
31
32
33
$|++; # aktiviert Autoflush fuer STDOUT
use FindBin ();
use lib "$FindBin::Bin";
use strict;
use warnings;
use XML::Twig;
use Term::ANSIColor qw(:constants);
my $sid= parameter("solmankey=");
print "\n\t die sid lautet:".$sid."\n";
###############################################################################
# ask instance number
sub parameter{
my $search=$_[0];
my $parameter="";
my $found="";
foreach (@ARGV) {
$found = ($_ =~ s/^$search//g);
$parameter= $_;
last if $found ==1;
}
return $parameter;
}