Schrift
[thread]7410[/thread]

Activestate Perl auf Windows - system aufruf: system-aufruf



<< >> 6 Einträge, 1 Seite
kann_kein_perl
 2005-10-28 15:57
#59474 #59474
User since
2005-10-28
5 Artikel
BenutzerIn
[default_avatar]
Hallo Leute - mein erster Beitrag,

habe folgendes Problem unter Activestate Perl auf Windows(XP):

Ich kann zwar z.Bsp: mit system('time /T') das Kommando 'time /T' aufrufen ('/T' bringt die Zeit ohne abfrage auf einstellen der neuen Uhrzeit). Jedoch kann ich das Ergebnis/die Ausgabe des Kommandos keiner Variable zuweisen, also:

$time = system('time /T');

...weist variable $time den Wert 0 zu...

wiss Ihr vielleicht, woran das liegen könnte bzw. wie ich den eine Systemausgabe einer Variablen unter Windows zuweisen kann ?

viele Grüsse und Dank im Voraus
Thomas
landogar
 2005-10-28 16:40
#59475 #59475
User since
2005-10-26
8 Artikel
BenutzerIn
[default_avatar]
hallo!

mit system funktioniert das so nicht!
probiers mal so:

my $time= qx("time /T");
kann_kein_perl
 2005-10-28 16:50
#59476 #59476
User since
2005-10-28
5 Artikel
BenutzerIn
[default_avatar]
Yeehaa! es Funktioniert!

Danke für den Hinweis.

Ist schon komisch - den Aufruf hat er mit 'system' ausgeführt, aber die nix in die variable geschrieben.
Aber das sind wahrscheinlich die kleinen(großen?) Unterschiede zwischen Windows-Perl und Unix/Linux-Perl...

Schönes Wochende wünsch ich Dir, Landogar
GwenDragon
 2005-10-28 17:10
#59477 #59477
User since
2005-01-17
14745 Artikel
Admin1
[Homepage]
user image
system liefert nicht den Inhalt der Ausgabe des Programms zurück!
Quote
The return value is the exit status of the program as returned
by the "wait" call. To get the actual exit value divide by 256.
See also the exec entry elsewhere in this document. This is
*not* what you want to use to capture the output from a command,
for that you should use merely backticks or "qx//", as described
in the section on "`STRING`" in the perlop manpage. Return value
of -1 indicates a failure to start the program (inspect $! for
the reason).
Auszug
perldoc -f system
GwenDragon
 2005-10-28 17:13
#59478 #59478
User since
2005-01-17
14745 Artikel
Admin1
[Homepage]
user image
[quote=landogar,28.10.2005, 14:40]hallo!

mit system funktioniert das so nicht!
probiers mal  so:

my $time= qx("time /T");[/quote]
Code: (dl )
my $time = qx(time /T);
reicht aus.
qx quotet ja schon, da braucht es keine Anführungszeichen.
nepos
 2005-10-30 12:02
#59479 #59479
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Das ist nicht komisch, dass in der Variable ne Null drinsteht, das is so gewollt und steht wie GwenDragon schon schreibt aus so in der Doku ;)
<< >> 6 Einträge, 1 Seite



View all threads created 2005-10-28 15:57.