Dan Kogai wrote:

    ~slurp $file;

Very clever.  But still not good enough when it comes to autoboxing.

  { ~slurp }($*PROGRAM_NAME).print

and even

  (~slurp $*PROGRAM_NAME).print

works as expected but since "~slurp $file" is really ~(slurp $file),


does not.

You want:




  The problem of ~stringify, ?boolify, and +numify is that
they are infix operators so it goes the opposite direction.

Oh, while I was testing all these on pugs, I came across this.

  say $*PROGRAM_NAME.slurp.elems;

That call to .slurp is in scalar context, since the result is immediately used as an object.

This says 1 but

  my @lines = $*PROGRAM_NAME.slurp; say @lines.elems;

says 3.

That .slurp is in list context.


Reply via email to