Schrift
[thread]5388[/thread]

Modul überprüfen: extern auf dem Server



<< >> 7 Einträge, 1 Seite
kölsch
 2003-11-20 00:11
#48421 #48421
User since
2003-10-02
66 Artikel
BenutzerIn
[default_avatar]
[quote=Strat,02.Nov..2003, 22:09]man kann ja in perl-scripten externe kommandos ausfuehren, und somit auch aus cgi-scripten heraus, z.B.
Code: (dl )
1
2
my @result = qx(perl -e modulname 2>&1);
print @result;

auf diese weise habe ich auch schon perl-module installiert...[/quote]
Ok, das hat funktioniert, aber aus irgendeinem verdammten Grund gibt er bei den wildesten Modulen, die gar nicht installiert sein können, keine Fehlermeldung mehr aus.
Keine Ahnung woran das liegen könnte.

Zum Bleistift:

Code: (dl )
1
2
3
4
5
6
#!/usr/bin/perl -w

print "Content-type: text/html\n\n";

my @result = qx(perl -e "use blabla::fsdkjghkajshd" 2>&1);
print @result;


-> keine Fehlermeldung beim Ausführen auf dem Server!!
Relais
 2003-11-20 00:18
#48422 #48422
User since
2003-08-06
2246 Artikel
ModeratorIn
[Homepage] [default_avatar]
ist mir auch erstmal unverständlich. Was passiert, wenn Du beschriebenes Skript auf dem gleichen Rechner auf der Kommandozeile ausführst?
Erst denken, dann posten --
27. Deutscher Perl- u. Raku -Workshop (Termin wird noch gesucht) 2025 in München.

Winter is Coming
format_c
 2003-11-20 00:25
#48423 #48423
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Mach doch perldoc Modul. Wenn die korrekt angezeigt wird, ist zwar nicht zwingend gewährleistet, dass das Modul richtig funktioniert, jedoch siehst du ob es richtig installiert ist.

Gruß Alex
pq
 2003-11-20 03:07
#48424 #48424
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
ich würde eher sowas machen:
Code: (dl )
1
2
3
4
# header...
eval "use modul::name";
if ($@) { print "Fehler: $@" }
else { print "modul::name wurde gefunden mit version $modul::name::VERSION"}
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
format_c
 2003-11-20 09:55
#48425 #48425
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
stimmt das ist natürlich noch eleganter.

Gruß Alex
kölsch
 2003-11-20 13:48
#48426 #48426
User since
2003-10-02
66 Artikel
BenutzerIn
[default_avatar]
[quote=pq,20.Nov..2003, 02:07]ich würde eher sowas machen:
Code: (dl )
1
2
3
4
# header...
eval "use modul::name";
if ($@) { print "Fehler: $@" }
else { print "modul::name wurde gefunden mit version $modul::name::VERSION"}
[/quote]
Alles klar, vielen Dank! Jetzt funktionierts wieder.

Keine Ahnung warum meine Version nicht geht.

Gruß
Strat
 2003-11-20 15:02
#48427 #48427
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=kölsch,19.11.2003, 23:11]
Code: (dl )
1
2
my @result = qx(perl -e modulname 2>&1);
print @result;
[/quote]
so kann man auch nicht ueberpruefen, ob ein modul installiert ist; als einzeiler waere es z.B. folgendermaszen:
Code: (dl )
my @result = qx(perl -MModulname -e "1" 2>&1);

oder:
[/code]
my @result = qx(perl -e "use Modulname" 2>&1);
[/code]
aber die Loesungen von oben (mit eval) finde ich viel schoener
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
<< >> 7 Einträge, 1 Seite



View all threads created 2003-11-20 00:11.