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
go?[1]

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.

-- 
Gaal Yahas <[EMAIL PROTECTED]>
http://gaal.livejournal.com/

Reply via email to