~ubuntu-branches/ubuntu/intrepid/perl-doc-html/intrepid

« back to all changes in this revision

Viewing changes to Net/netent.html

  • Committer: Bazaar Package Importer
  • Author(s): Roberto C. Sanchez
  • Date: 2008-05-17 20:14:19 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20080517201419-qgbuogq2ckkdisyi
Tags: 5.10.0-2
Supersede botched upload of 5.10.0-1.

Show diffs side-by-side

added added

removed removed

Lines of Context:
54
54
      <h2>Links:</h2>
55
55
      <ul>
56
56
        <li><a href="http://search.cpan.org">CPAN</a></li>
 
57
        <li><a href="http://www.perl.org">Perl.org</a></li>
57
58
        <li><a href="http://www.perl.com">Perl.com</a></li>
58
 
        <li><a href="http://www.perl.org">Perl.org</a></li>
 
59
        <li><a href="http://perlbuzz.com">Perl Buzz</a></li>
 
60
        <li><a href="http://www.perlfoundation.org/perl5/index.cgi">Perl 5 Wiki</a></li>
 
61
        <li><a href="http://jobs.perl.org">Perl Jobs</a></li>
59
62
        <li><a href="http://www.pm.org">Perl Mongers</a></li>
60
63
        <li><a href="http://www.perlmonks.org">Perl Monks</a></li>
61
64
        <li><a href="http://planet.perl.org">Planet Perl</a></li>
65
68
      <ul>
66
69
        <li>Site maintained by<br><a href="http://perl.jonallen.info">Jon Allen</a>
67
70
            (<a href="http://perl.jonallen.info">JJ</a>)</li>
68
 
        <li class="spaced">Last updated on<br>23 April 2006</li>
 
71
        <li class="spaced">Last updated on<br>23 December 2007</li>
69
72
        <li class="spaced">See the <a href="http://perl.jonallen.info/projects/perldoc">project page</a> for
70
73
        more details</li>
71
74
      </ul>
76
79
    <div id="centerContent">
77
80
      <div id="contentHeader">
78
81
        <div id="contentHeaderLeft"><a href="#" onClick="showLeft()">Show navigation</a></div>
79
 
        <div id="contentHeaderCentre">-- Perl 5.8.8 documentation --</div>
 
82
        <div id="contentHeaderCentre">-- Perl 5.10.0 documentation --</div>
80
83
        <div id="contentHeaderRight"><a href="#" onClick="showRight()">Show toolbar</a></div>
81
84
      </div>
82
85
      <div id="breadCrumbs"><a href="../index.html">Home</a> &gt; <a href="../index-modules-A.html">Core modules</a> &gt; <a href="../index-modules-N.html">N</a> &gt; Net::netent</div>
84
87
      <div id="contentBody"><div class="title_container"><div class="page_title">Net::netent</div></div><ul><li><a href="#NAME">NAME</a><li><a href="#SYNOPSIS">SYNOPSIS</a><li><a href="#DESCRIPTION">DESCRIPTION</a><li><a href="#EXAMPLES">EXAMPLES</a><li><a href="#NOTE">NOTE</a><li><a href="#AUTHOR">AUTHOR</a></ul><a name="NAME"></a><h1>NAME</h1>
85
88
<p>Net::netent - by-name interface to Perl's built-in getnet*() functions</p>
86
89
<a name="SYNOPSIS"></a><h1>SYNOPSIS</h1>
87
 
<pre class="verbatim"> <a class="l_k" href="../functions/use.html">use</a> <a class="l_w" href="../Net/netent.html">Net::netent</a> <span class="q">qw(:FIELDS)</span><span class="sc">;</span>
 
90
<pre class="verbatim"> <a class="l_k" href="../functions/use.html">use</a> <span class="w">Net::netent</span> <span class="q">qw(:FIELDS)</span><span class="sc">;</span>
88
91
 <a class="l_k" href="../functions/getnetbyname.html">getnetbyname</a><span class="s">(</span><span class="q">&quot;loopback&quot;</span><span class="s">)</span>               or <a class="l_k" href="../functions/die.html">die</a> <span class="q">&quot;bad net&quot;</span><span class="sc">;</span>
89
92
 <a class="l_k" href="../functions/printf.html">printf</a> <span class="q">&quot;%s is %08X\n&quot;</span><span class="cm">,</span> <span class="i">$n_name</span><span class="cm">,</span> <span class="i">$n_net</span><span class="sc">;</span></pre>
90
 
<pre class="verbatim"> <a class="l_k" href="../functions/use.html">use</a> <a class="l_w" href="../Net/netent.html">Net::netent</a><span class="sc">;</span></pre>
 
93
<pre class="verbatim"> <a class="l_k" href="../functions/use.html">use</a> <span class="w">Net::netent</span><span class="sc">;</span></pre>
91
94
<pre class="verbatim"> <span class="i">$n</span> = <a class="l_k" href="../functions/getnetbyname.html">getnetbyname</a><span class="s">(</span><span class="q">&quot;loopback&quot;</span><span class="s">)</span>             or <a class="l_k" href="../functions/die.html">die</a> <span class="q">&quot;bad net&quot;</span><span class="sc">;</span>
92
95
 <span class="s">{</span> <span class="c"># there&#39;s gotta be a better way, eh?</span>
93
96
     <span class="i">@bytes</span> = <a class="l_k" href="../functions/unpack.html">unpack</a><span class="s">(</span><span class="q">&quot;C4&quot;</span><span class="cm">,</span> <a class="l_k" href="../functions/pack.html">pack</a><span class="s">(</span><span class="q">&quot;N&quot;</span><span class="cm">,</span> <span class="i">$n</span><span class="i">-&gt;net</span><span class="s">)</span><span class="s">)</span><span class="sc">;</span>
100
103
"Net::netent" objects.  This object has methods that return the similarly
101
104
named structure field name from the C's netent structure from <i>netdb.h</i>;
102
105
namely name, aliases, addrtype, and net.  The aliases 
103
 
method returns an array reference, the rest scalars.  </p>
 
106
method returns an array reference, the rest scalars.</p>
104
107
<p>You may also import all the structure fields directly into your namespace
105
108
as regular variables using the :FIELDS import tag.  (Note that this still
106
109
overrides your core functions.)  Access these fields as variables named
107
 
with a preceding <code class="inline">n_</code>
 
110
with a preceding <code class="inline"><span class="w">n_</span></code>
108
111
.  Thus, <code class="inline"><span class="i">$net_obj</span><span class="i">-&gt;name</span><span class="s">(</span><span class="s">)</span></code>
109
112
 corresponds to
110
113
$n_name if you import the fields.  Array references are available as
118
121
pass the <code class="inline"><a class="l_k" href="../functions/use.html">use</a></code> an empty import list, and then access
119
122
function functions with their full qualified names.
120
123
On the other hand, the built-ins are still available
121
 
via the <code class="inline">CORE::</code>
 
124
via the <code class="inline"><span class="w">CORE::</span></code>
122
125
 pseudo-package.</p>
123
126
<a name="EXAMPLES"></a><h1>EXAMPLES</h1>
124
127
<p>The getnet() functions do this in the Perl core:</p>
125
128
<pre class="verbatim">    sv_setiv(sv, (I32)nent-&gt;n_net);</pre><p>The gethost() functions do this in the Perl core:</p>
126
 
<pre class="verbatim">    <span class="i">sv_setpvn</span><span class="s">(</span>sv<span class="cm">,</span> hent-&gt;h_addr<span class="cm">,</span> len<span class="s">)</span><span class="sc">;</span></pre>
 
129
<pre class="verbatim">    <span class="i">sv_setpvn</span><span class="s">(</span><span class="w">sv</span><span class="cm">,</span> <span class="w">hent</span><span class="w">-&gt;h_addr</span><span class="cm">,</span> <span class="w">len</span><span class="s">)</span><span class="sc">;</span></pre>
127
130
<p>That means that the address comes back in binary for the
128
131
host functions, and as a regular perl integer for the net ones.
129
132
This seems a bug, but here's how to deal with it:</p>
130
 
<pre class="verbatim"> <a class="l_k" href="../functions/use.html">use</a> <a class="l_w" href="../strict.html">strict</a><span class="sc">;</span>
131
 
 <a class="l_k" href="../functions/use.html">use</a> <a class="l_w" href="../Socket.html">Socket</a><span class="sc">;</span>
132
 
 <a class="l_k" href="../functions/use.html">use</a> <a class="l_w" href="../Net/netent.html">Net::netent</a><span class="sc">;</span></pre>
 
133
<pre class="verbatim"> <a class="l_k" href="../functions/use.html">use</a> <span class="w">strict</span><span class="sc">;</span>
 
134
 <a class="l_k" href="../functions/use.html">use</a> <span class="w">Socket</span><span class="sc">;</span>
 
135
 <a class="l_k" href="../functions/use.html">use</a> <span class="w">Net::netent</span><span class="sc">;</span></pre>
133
136
<pre class="verbatim"> <span class="i">@ARGV</span> = <span class="s">(</span><span class="q">&#39;loopback&#39;</span><span class="s">)</span> unless <span class="i">@ARGV</span><span class="sc">;</span></pre>
134
137
<pre class="verbatim"> <a class="l_k" href="../functions/my.html">my</a><span class="s">(</span><span class="i">$n</span><span class="cm">,</span> <span class="i">$net</span><span class="s">)</span><span class="sc">;</span></pre>
135
138
<pre class="verbatim"> for $net ( @ARGV ) {</pre><pre class="verbatim">     unless <span class="s">(</span><span class="i">$n</span> = <a class="l_k" href="../functions/getnetbyname.html">getnetbyname</a><span class="s">(</span><span class="i">$net</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
141
144
            <a class="l_k" href="../functions/lc.html">lc</a><span class="s">(</span><span class="i">$n</span><span class="i">-&gt;name</span><span class="s">)</span> eq <a class="l_k" href="../functions/lc.html">lc</a><span class="s">(</span><span class="i">$net</span><span class="s">)</span> ? <span class="q">&quot;&quot;</span> <span class="co">:</span> <span class="q">&quot;*really* &quot;</span><span class="cm">,</span>
142
145
            <span class="i">$n</span><span class="i">-&gt;name</span><span class="sc">;</span></pre>
143
146
<pre class="verbatim">     <a class="l_k" href="../functions/print.html">print</a> <span class="q">&quot;\taliases are &quot;</span><span class="cm">,</span> <a class="l_k" href="../functions/join.html">join</a><span class="s">(</span><span class="q">&quot;, &quot;</span><span class="cm">,</span> <span class="i">@</span>{<span class="i">$n</span><span class="i">-&gt;aliases</span>}<span class="s">)</span><span class="cm">,</span> <span class="q">&quot;\n&quot;</span>
144
 
                if <span class="i">@</span>{<span class="i">$n</span><span class="i">-&gt;aliases</span>}<span class="sc">;</span>     </pre>
 
147
                if <span class="i">@</span>{<span class="i">$n</span><span class="i">-&gt;aliases</span>}<span class="sc">;</span></pre>
145
148
<pre class="verbatim">     <span class="c"># this is stupid; first, why is this not in binary?</span>
146
149
     <span class="c"># second, why am i going through these convolutions</span>
147
150
     <span class="c"># to make it looks right</span>
179
182
          <!--<select name="r"><option value="1" selected>Go to top result<option value="0">Show results list</select>-->
180
183
        </form>
181
184
      </p>
 
185
      <script language="JavaScript" type="text/javascript" src="/perl-version.js"></script>
182
186
      <h2>Labels:</h2>
183
187
      <p>
184
188
        <a href="#" onClick="addLabel('Net::netent','Net/netent.html')">Add this page</a>