Schrift
[thread]11854[/thread]

Parameter über SHELL an PERL-Script übergeben

Leser: 1


<< >> 4 Einträge, 1 Seite
Gast Gast
 2008-05-21 17:25
#110068 #110068
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
renee
 2008-05-21 17:30
#110069 #110069
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
String-Vergleiche macht man in Perl mit eq und die Strings müssen in Anführungszeichen gepackt werden.

Code (perl): (dl )
1
2
3
4
5
6
7
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:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
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...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Gast Gast
 2008-05-21 17:59
#110070 #110070
hi renee,

hat funktioniert, danke

gruß olli
nepos
 2008-05-21 20:45
#110074 #110074
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Wenn du mal Skripte mit diversen Schaltern usw. machen willst, schau dir mal CPAN:Getopt::Long an. Damit kann man recht einfach Kommandozeilenschalter auslesen.
<< >> 4 Einträge, 1 Seite



View all threads created 2008-05-21 17:25.