I know that perl6 has / will have lazy strings, since (in
S32::Containers) the List role defines a cat method, which returns a
Cat object, which "does the Str interface, but generates the string
lazily."

First, are Cat objects documented anywhere else?

Secondly, if a regular expression match is done on a lazy string, is
that lazy string turned into a normal string?

If we can efficiently match against a lazy string, and if this doesn't
turn the lazy string into a (large) normal string, then the best way
to process a file might be something similar to:
   my $fh = open ... err die;
   my $contents = cat($fh.lines);
, followed by matching on $contents.

Better still would be to provide a way for filehandles to be directly
asked to produce a lazy Str which reflects the file.

Reply via email to