Ich kann in Perl 5 Dateihandles zu Strings erstellen, wie mache ich das in Perl 6?

8

In Perl 5 kann ich ein Dateihandle zu einer Zeichenfolge erstellen und aus der Zeichenfolge lesen oder schreiben, als wäre es eine Datei. Dies ist ideal für die Arbeit mit Tests oder Vorlagen.

Zum Beispiel:

%Vor%

Wie kann ich das in Perl 6 machen? Das folgende funktioniert nicht für Perl 6 (zumindest nicht für meine Instanz von Perl6, die auf läuft MoarVM 2015.01 aus der Veröffentlichung von Rakudo Star im Januar 2015 auf 64-Bit CentOS 6.5):

%Vor%

Ich bekomme die Fehlermeldung:

%Vor%

Es ist nicht sehr überraschend, dass Perl5's open(my $fh, '<', $text) nicht dasselbe ist wie Perl6's my $fh = $text; . Die Frage ist also: Wie erstellt man ein virtuelles Dateihandle aus einer Zeichenkette in Perl 6 wie open(my $fh, '<', $str) in Perl 5? Oder ist das etwas, das noch umgesetzt werden muss?

UPDATE (Schreiben in ein Dateihandle in Perl 5)

Sie können auch in Perl 5 in String-Dateihandles schreiben:

%Vor%

Ausgaben:

%Vor%

Ich habe in Perl 6 noch nichts Vergleichbares gesehen.

    
Christopher Bottoms 24.02.2015, 17:54
quelle

1 Antwort

8

Lesen

Der idiomatische Weg, Zeile für Zeile zu lesen, ist die Methode .lines , die auf beiden Seiten verfügbar ist. co_de% und Str .

Es wird eine faule Liste zurückgegeben, die Sie wie in

an IO::Handle weitergeben können %Vor%

Schreiben

%Vor%

(Angepasst von # perl6 , danke an Carl Mäsak.)

Weitere Fälle

Wenn Sie einen ausgefeilteren Mechanismus zum Imitieren von Dateigriffen benötigen, gibt es IO :: Capture :: Simple und IO :: String im Ökosystem .

Zum Beispiel:

%Vor%     
Christoph 24.02.2015, 20:51
quelle

Tags und Links