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

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

Thread Previous | Thread Next
From:
Eric Brine
Date:
July 24, 2014 20:20
Subject:
Re: New feature proposal : <<>> to disable magic open of ARGV
Message ID:
CALJW-qGBGGzX5y2Co+h=rEmFmebnaJxmGo1PC85txqN4c8W7Lg@mail.gmail.com
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 <rgs@consttype.org>
wrote:

> 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 <rgs@consttype.org>
> 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


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About