Thread Python rockz! (82 answers)
Opened by pktm at 2007-06-03 17:08

betterworld
 2007-06-13 05:34
#23799 #23799
User since
2003-08-21
2613 Artikel
ModeratorIn

user image
[quote=RPerl,04.06.2007, 21:29]\r?\n = chomp ?

Koennte man dann:
Code (perl): (dl )
my @array = split(/\r?\n/,$result);


mit chomp umschreiben? Oder ist das nur bei Schleifen "relevant"?
[/quote]
Ist \r?\n denn absolut portabel?  Ich dachte, es gäbe auch Systeme, die schlicht \r verwenden.  Um mir über so etwas keine Gedanken machen zu müssen, verwende ich lieber so etwas:
Code (perl): (dl )
my @array = $result =~ m{[^\r\n]+}g;

Das sieht hübsch aus und filtert die abartigsten Zeilenumbrüche heraus.  Nachteil ist allerdings, dass es nebenbei auch noch Leerzeilen ignoriert.
Ich mag split ja sowieso nicht besonders und finde, dass es viel zu viel gebraucht wird ;) In diesem Fall nervt split übrigens auch, weil es nach einem finalen Zeilenumbruch noch eine leere Zeile vermutet.

In manchen Schleifen braucht man auch kein chomp, wenn man sich auf die ansonsten oft unwillkommenen Eigenschaften von $ in regulären Ausdrücken verlässt:
Code (perl): (dl )
1
2
3
4
while (my $line = <>) {
    warn 'Not an integer!' unless /^-?\d+$/;
    ...
}
(Das löst natürlich nicht das Problem der Zeilenumbrüche von unterschiedlichen Betriebssystemen.)

[quote=renee,03.06.2007, 19:12]Irgendwann wirst Du es noch schaffen, allen das local einzuimpfen *daumendrück*[/quote]
Danke :)  Ihr könnt auch gerne alle mithelfen ;)\n\n

<!--EDIT|betterworld|1181698695-->

View full thread Python rockz!