Schrift
[thread]8034[/thread]

Problem mit veschachtelten while-Schleifen (Seite 2)

Leser: 1


<< |< 1 2 3 >| >> 27 Einträge, 3 Seiten
EagleFox
 2006-05-31 16:49
#66782 #66782
User since
2006-04-10
66 Artikel
BenutzerIn
[default_avatar]
Hallo nochmal!

Also zum Teil habe ich das nun zum Laufen gebracht. Dabei ist aber das Problem aufgetreten, dass mir local $/ = "\n\n"; ein Unterprogramm, welches in der while-Schleife aufgerufen wird, platt macht.
In dem Unterprogramm werden in einer while-Schleife weitere Daten analysiert, aber leider nicht mehr wie früher (also bevor ich das mit local $/ eingebaut habe), sondern es bricht diese Schleife einfach ab, wenn zwei Leerzeilen im Text der zu bearbeitenden Datei stehen!
Wie kann ich das $/ in dem Unterprogramm wieder auf default setzen, sodass die while-Schleife wieder "normal" durchläuft???
GwenDragon
 2006-05-31 16:54
#66783 #66783
User since
2005-01-17
14563 Artikel
Admin1
[Homepage]
user image
local $/ = "\n"; ist der Standardwert ;)
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

EagleFox
 2006-05-31 16:57
#66784 #66784
User since
2006-04-10
66 Artikel
BenutzerIn
[default_avatar]
Grrr.
Ja, gerade habe ich das auch herausgefunden. Hatte vorher versucht local $/ = ""; und so ein Blödsinn!
Hatte in der perlvar nichts direktes dazu gefunden!

DANKE!!!!!!!!

P.S. Muss ich am Ende der while-Schleife im Unterprogramm eigentlich wieder local $/ = "\n\n"; setzen, oder behält er das in der aufrufenden Schleife???\n\n

<!--EDIT|EagleFox|1149080373-->
GwenDragon
 2006-05-31 17:13
#66785 #66785
User since
2005-01-17
14563 Artikel
Admin1
[Homepage]
user image
Das in der sub mit local gesetzte $/ gilt nur in der sub.\n\n

<!--EDIT|GwenDragon|1149082114-->
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

betterworld
 2006-05-31 18:00
#66786 #66786
User since
2003-08-21
2613 Artikel
ModeratorIn

user image
Du kannst die Schleife auch so schreiben:
Code: (dl )
1
2
3
4
   my ($entry, $entry2);
while(do {local $/="\n\n";defined($entry = <$fh_1>) and defined($entry_2 = <$fh_2>})){
tu_was($entry,$entry_2);
}

So musst Du nicht fuer die ganze Schleife das $/ umgestellt lassen. Wenn man solche globalen Variablen veraendert, sollte man es immer moeglichst schnell wieder zuruecksetzen.
EagleFox
 2006-05-31 18:42
#66787 #66787
User since
2006-04-10
66 Artikel
BenutzerIn
[default_avatar]
SUUUPER! Danke betterworld, so klappt das nun alles sehr gut!

Ich hatte zwar noch ein paar kleinere Bugs im script, aber die "$/-Aktion" hat mich echt weitergebracht!

Ich danke euch nochmals!
pq
 2006-05-31 21:57
#66788 #66788
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=GwenDragon,31.05.2006, 15:13]Das in der sub mit local gesetzte $/ gilt nur in der sub.[/quote]
und in allen von dieser sub aufgerufenen subs, wenn da welche sind.
my() gilt nur dür die sub, local() funktioniert da anders.
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
GwenDragon
 2006-05-31 22:28
#66789 #66789
User since
2005-01-17
14563 Artikel
Admin1
[Homepage]
user image
Ja, stimmt ich habe mich nicht korrekt ausgedrückt. Der Gültigkeitsbereich ist innerhalb des Blocks, in der sie local definiert wurde, oder? Und damit ist sie dann auch für die in dieser sub aufgerufenen anderen subs sichtbar.
Oder habe ich das wieder verquer erklärt?
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

pq
 2006-06-01 00:04
#66790 #66790
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
ich glaub, das kann man in einem satz schlecht ausdrücken =)
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
GwenDragon
 2006-06-01 00:34
#66791 #66791
User since
2005-01-17
14563 Artikel
Admin1
[Homepage]
user image
Fragen von Fragenden werden wohl verschieden verstanden oder ich werde alt. :rock:
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

<< |< 1 2 3 >| >> 27 Einträge, 3 Seiten



View all threads created 2006-05-30 20:42.