develooper Front page | perl.perl5.porters | Postings from July 2014

Re: New feature proposal : <<>> to disable magic open of ARGV

Thread Previous | Thread Next
Eric Brine
July 24, 2014 20:20
Re: New feature proposal : <<>> to disable magic open of ARGV
Message ID:
The goal is to change the behaviour of reading from ARGV, not <>.

Unless <<>> is short for <NOTARGV>, this seems like a broken design.  What
happens if someone uses readline(), read() or sysread() on ARGV?

If <<>> is short for <NOTARGV>, then I think it's a messy solution. Does
that mean we also have $NOTARGV?

A global pragma sounds much better.

On Thu, Jul 24, 2014 at 11:51 AM, Rafael Garcia-Suarez <>

> I believe that this was discussed here some years ago, and that this
> was suggested by TomC. Anyway, I pushed a patch on rgs/nomagicopen.
> The patch is incomplete as it lacks docs and tests. I welcome feedback
> on the intent of the feature.
> commit 7f5bb3418c4fc2d6e2523bf918a7d9e33f9a7acc
> Author: Rafael Garcia-Suarez <>
> Date:   Thu Jul 24 17:43:29 2014 +0200
>     Introduce the double-diamond operator <<>>
>     This operator works like <> or <ARGV>, as it reads the list of file
>     names to open from the command-line arguments. However, it disables
>     the magic-open feature (that forks to execute piped commands) :
>         $ bleadperl -e 'while(<>){print}' 'echo foo |'
>         foo
>         $ bleadperl -e 'while(<<>>){print}' 'echo foo |'
>         Can't open echo foo |: No such file or directory at -e line 1.

Thread Previous | Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About