On Wed, May 04, 2005 at 08:47:17AM -0400, Aaron Sherman wrote:
> I would expect "open" to be a bit of an anachronism in P6, but still
> used fairly often. For the most part, I would expect that:
>       my IO $read_fh = '/some/path' => 'r'; # Get an IO::File (is IO)
>       my IO $write_fh = '/other/path' => '>'; # Get IO::File
>       my IO $pipe_fh = 'program args' => $IO::ReadPipe; # Get IO::Pipe
>       my IO $sock_fh = 'http://www.perl.org/' => $IO::URI; # Get IO::Socket
> would just DWIM. But, perhaps I'm expecting too much...

Ah yes, that's another thing I was wondering about: what does opening a
pipe return. If it's a one-way pipe, okay, this may be a single handle;
but for bidirectional opens, we need $in, $out, and $err handles; and
even in the simple unidirectional case, where does the Process handle

In the glorious OOP version of these builtins, IO can encasulate the
three handles, plus the process handles. But if we are to provide a
pipe1 builtin, it can return a single handle (and not the pid, unless
we return a list or use OUT variables (yech)). Should we provide further
procedural interfaces for pipe2 and pipe3?

[1] "Process handle" encapsulates unix pid / win32 process handle.


Reply via email to