Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer

Comment on

( #3333=superdoc: print w/ replies, xml ) Need Help??
I was confused by this as well. My cause to delve into IO::Socket was a breakdown of my LWP modules.

Go to your Perl source can check out:

the directory ext/Errno

This is where these strings are actually obtained and made into the module which in turn gives rise to %!.

What is going on here is that at make time Errno_pm.PL actually checks the cpp output to get a list of headers to scan. This output comes from something along the lines of "cpp your cpp flags errno.c". "errno.c" has a single line "#include <errno.h> Then it will scan all of these header files for #defines. (check out /usr/lib/errno.h or /usr/lib/asm/errno.h if you have it). Taking these defines, it will write the code for "" which ultimately lives in "lib/perl5/5.6.0/<arch>/

The values for %! are supplied via a tied hash from

Why do I know this? Well because shipped with RedHat did not correctly report all of the headers to scan. When the IO::Socket went to test against $!{EINPROGRESS} it did not match. It was always giving me "Timeout" messages. :( After tracing this through I found the defective output from cpp and the rest is history.

You need the updated cpp that RedHat supplies. This version (dated Dec 18, 2000) works correctly.


In reply to Re: $! or &Errno or $!{} by jlawrenc
in thread $! or &Errno or $!{} by tadman

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!
  • 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, 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, 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.
  • Log In?

    What's my password?
    Create A New User
    and the web crawler heard nothing...

    How do I use this? | Other CB clients
    Other Users?
    Others lurking in the Monastery: (8)
    As of 2015-10-13 07:54 GMT
    Find Nodes?
      Voting Booth?

      Does Humor Belong in Programming?

      Results (296 votes), past polls