Re: 3-argument open on STDIN

"Bryan" == Bryan R Harris <Bryan_R_Harris@xxxxxxxxxxxx> writes:

Bryan> How can I use the "safe" 3-argument open and still be able to read off
Bryan> pipe?

You don't. 2-arg open has to be good for something.

And 2-arg open is perfectly safe if the second arg is a literal:

open OTHER, "<-" or die;
open my $handle, "<-" or die;

Don't let anyone tell you "Always use 3-arg open" unless they also
footnote it with "unless you have no variables involved".

Hmm. With this tool if there's a pipe and no user-supplied files, I just
put "-" onto the list of files to search -- using the 2-arg open. Someone
suggested that was a bad idea, so I switched to the 3-arg open but that
broke reading off the pipe.

So is it right that in order to read off the pipe *and* be safe, I have to
have both types of "open" statements in my code?

- Bryan