hallo,
ich möchte ein perl script über die shell mit bestimmten parametern starten
z.B. test.perl job1
im test.perl soll dann der parameter verglichen werden.
z.B. if($ARGV[0]==job1)
{
.......
}
elsif($ARGV[0]==job2)
{
..........
}
und so weiter.
kann mir da jemand weiterhelfen.
danke & grüße olli
User since
2003-08-04
14371
Artikel
ModeratorIn
String-Vergleiche macht man in Perl mit
eq und die Strings müssen in Anführungszeichen gepackt werden.
if( $ARGV[0] eq 'job1' ){
sub1();
}
elsif( $ARGV[0] eq 'job2' ){
sub2();
}
Wenn ich solche if-elsif-Konstrukte sehe, denke ich gleich an Dispatcher...
Hier mal mit einem einfachen Hash:
my %dispatch = (
job1 => \&sub1,
job2 => \&sub2,
);
my $sub = \&default_sub;
$sub = $dispatch{ $ARGV[0] } if exists $dispatch{ $ARGV[0] };
$sub->();
Edit: das vergessene
$sub->(); hinzugefügt...
hi renee,
hat funktioniert, danke
gruß olli
User since
2005-08-17
1420
Artikel
BenutzerIn
Wenn du mal Skripte mit diversen Schaltern usw. machen willst, schau dir mal
Getopt::Long an. Damit kann man recht einfach Kommandozeilenschalter auslesen.