mardi 24 février 2015

I can create filehandles to strings in Perl 5, how do I do it in Perl 6?

In Perl 5, I can create a filehandle to a string and read or write from the string as if it were a file. This is great for working with tests or templates.


For example:



my $text = "A\nB\nC\n";

open(my $fh, '<', \$text);

while(my $line = readline($fh)){
print $line;
}


How can I do that in Perl 6? The following doesn't work for Perl 6 (at least not for my instance of Perl6 running on MoarVM 2015.01 from the January 2015 release of Rakudo Star on 64-bit CentOS 6.5):



# Warning: This code does not work
use v6;

my $fh = "A\nB\nC\n";

while (my $line = $fh.get ) {
$line.say;
}
# Warning: Example of nonfunctional code


I get the error message:



No such method 'get' for invocant of type 'Str'
in block <unit> at string_fh.p6:5


Anyway, I'd be glad to know if there is a way to do filehandle-style reading and writing from strings in Perl 6 or if that is yet to be implemented.


Aucun commentaire:

Enregistrer un commentaire