Thread $file.lines und $file.get (2 answers)
Opened by Sven_123 at 2011-12-07 14:18

Sven_123
 2011-12-07 14:18
#154705 #154705
User since
2010-06-01
120 Artikel
BenutzerIn
[default_avatar]
Hallo,
ich hab mir grad die neueste nom-Version installiert, um mal zu gucken, wie schnell mein etwas älterer code läuft. Beim Umbauen bin ich bei folgendem Problem hängen geblieben:

Ein $filehandle.get scheint bei der ersten Zeile der Datei zu starten, selbst wenn davor mit $filehandle.lines schon Zeilen eingelesen wurden:
Code (perl): (dl )
1
2
3
4
5
6
7
8
my $in = open "test", :r;
for $in.lines -> $x {
 if ($x ~~ /b/) {
  say $x;
  my $y = $in.get;
  say $y;
 }
}

Produziert für die Datei "test"
Code: (dl )
1
2
3
a
b
c

Code: (dl )
1
2
b
a

als output...

Gibt es eigentlich irgendwo eine einigermaßen aktuelle Liste von Befehlen und ihrer Wirkung? Ich hab ne ältere Version von "Using Perl6", bzw. gibt es ja hier zwei Tutorials, aber in der rakudo star version 2011.07 ging das noch und ich wüsste grad nicht, wo ich nachschau, ob die Änderung gewollt ist, oder nicht.
Unabhängig davon, wie schreib ich sowas, jetzt?

(Lustig ist auch, das for, durch ein while zu ersetzen - das .get scheint alles zurückzusetzen, warum allerdings zwei Zeichen in einer Zeile im output stehen versteh ich noch nicht...*g)
Code: (dl )
1
2
3
4
5
6
7
8
9
a b c
a
b c
a
b c
a
b c
a
...

Edit: Zum while: ich schätze, ich das funktioniert da mit dem -> $x anders...ist auch egal. ;)
Last edited: 2011-12-07 14:19:48 +0100 (CET)

View full thread $file.lines und $file.get