On Wed, May 04, 2005 at 11:44:58PM -0700, Larry Wall wrote:
> : How do I open a file named "-"?
> Um, depending on what you mean, and whether we continue to support
> the '=' pseudofile, maybe:
>     $fh = io("-");
>     $fh = open "-";
>     $fh = $name eq '-' ?? $*IN :: open $name;

My concern is again with magic control. I've no gripes with the first
or last of those, but I think the second should not be allowed by
default. There has to be a safe mode for opening a file and knowing
that's what you're opening: not a pipe, not stdio (hence there are places
I can't permit myself to use #1). But as your third example suggests,
never allowing open "-" will make unixish tools tedious to write, so
maybe we need something like

    $fh = open $in, :allowstdio;

(only named more eloquently).

> : How do I open stdout (and the other standard handles)?
> Maybe something like:
>     $fh = open "file", :w:c:usefd(1);
>     $*OUT.reopen("file",:w:c);
>     reopen $*OUT: "file", :w:c;
> give or take a few options.

What does '"file"' do in these examples? If we take your trailing-args
suggestion from the Open and pipe thread, the filename could be optional.

How to make this "-"-friendly? If my earlier suggestion is okay, then
by symmetry:

    $logfile = "-";
    open $log, :a:allowstdio;


Reply via email to