re select RBITS,WBITS,EBITS,TIMEOUT on STDIN: ah, now there is a difference. Under Win32, it's only implemented for sockets! So bindings and handles etc. isn't really the issue. Rather, the particular function you wanted to use doesn't work on all concrete types. Specifically, yes on sockets, no on the Console streams.

FWIW, that's because Win32 doesn't have a function exactly like select in Unix. But the implemetation of the sockets library does, to meet the Berkley Sockets standard. But that function only works for handles created by that system.

Win32 has WaitForMultipleObjects and if the object in question is a file handle of some kind, it will be signaled when an asyncronous operation completed; or more specifically for the Console Input device, signaled when input is available.

The way you normally structure such a program in Windows is not nativly supported by Perl. I suppose a XS module could be written... Or, a layer to emulate the select model using a helper thread and buffers would be a bit of effort, and I guess the function was not important enough for ActiveState to worry about <g>.

—John


In reply to Re: Re: Re: Binding STDIN/STDOUT and why it doesn't work on Windoze by John M. Dlugosz
in thread win32/unix compatible script by aristAugust

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.