Array in einer while Schleife
Jonny
- perl
Hallo,
hat jemand eine Erklärung dafür, weshalb mein Script an folgender Stelle hängen bleibt?
my @plist=qx{ps -ef};
while(<@plist>) {
print;
}
Ich habe keine Ahnung warum das so sein könnte. Ich habe mal mit print @plist; getestet und die Prozessliste ist tatsächlich im Array, aber ich möchte gerne jede Zeile bearbeiten. Was mache ich da falsch?
Mfg,
Jonny
Tag Jonny.
hat jemand eine Erklärung dafür, weshalb mein Script an folgender Stelle hängen bleibt?
while(<@plist>) {
print;
}
Vermutlich meinst du sowas:
foreach $proc (@plist) {
print $proc;
}
Siechfred
你好 Siechfred,
Vermutlich meinst du sowas:
foreach $proc (@plist) {
print $proc;
}
Nein, viel wahrscheinlicher meint er das hier:
foreach my $proc (@plist) {
print $proc;
}
;-)
再见,
CK
Hola,
foreach my $proc (@plist) {
print $proc;
}
was spricht eigentlich gegen..
foreach (@plist) {
print $_;
}
Ich persönlich bevorzuge nämlich immer diese Variante.
Markus.
你好 Markus,
was spricht eigentlich gegen..
foreach (@plist) {
print $_;
}Ich persönlich bevorzuge nämlich immer diese Variante.
再见,
CK
Tag Christian.
Nein, viel wahrscheinlicher meint er das hier:
foreach my $proc (@plist) {
[...]
Hm, habe ich da etwa das »use strict;« im Ausgangsposting überlesen?
;-)
dito :-)
Siechfred
你好 Siechfred,
Nein, viel wahrscheinlicher meint er das hier:
foreach my $proc (@plist) {
[...]Hm, habe ich da etwa das »use strict;« im Ausgangsposting überlesen?
Selbstverstaendlich. Oder traust du dem OP zu, soetwas zu vergessen?
;-)
再见,
CK
foreach my $proc (@plist) {
print $proc;
}
Jetzt verstehe ich noch immer nicht, weshalb das nicht mit einer while -Schleife funktioniert. Warum bleibt das Script dort hängen?
Mfg,
Jonny
Hallo Jonny,
Jetzt verstehe ich noch immer nicht, weshalb das nicht mit einer while -Schleife funktioniert. Warum bleibt das Script dort hängen?
Weil <BLA> der Zeilenweise Eingabeoperator in Perl ist. Und die Eingabe hast Du ja schon bei qx{...} bekommen und in @plist gespeichert - @plist ist *kein* Dateihandle wie bspw. STDIN, sondern ein Array. Siehe:
< http://de.selfhtml.org/cgiperl/funktionen/einausgabe.htm#open>
< http://de.selfhtml.org/cgiperl/sprache/schleifen.htm#foreach>
Viele Grüße,
Christian