home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 May / Chip_2000-05_cd1.bin / zkuste / Perl / ActivePerl-5.6.0.613.msi / 䆊䌷䈹䈙䏵-䞅䞆䞀㡆䞃䄦䠥 / _8739d54fb20f7f52a43f3329e47425f2 < prev    next >
Text File  |  2000-03-23  |  4KB  |  112 lines

  1.  
  2. <HTML>
  3. <HEAD>
  4. <TITLE>Net::servent - by-name interface to Perl's built-in getserv* functions</TITLE>
  5. <LINK REL="stylesheet" HREF="../../Active.css" TYPE="text/css">
  6. <LINK REV="made" HREF="mailto:">
  7. </HEAD>
  8.  
  9. <BODY>
  10. <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
  11. <TR><TD CLASS=block VALIGN=MIDDLE WIDTH=100% BGCOLOR="#cccccc">
  12. <STRONG><P CLASS=block> Net::servent - by-name interface to Perl's built-in getserv* functions</P></STRONG>
  13. </TD></TR>
  14. </TABLE>
  15.  
  16. <A NAME="__index__"></A>
  17. <!-- INDEX BEGIN -->
  18.  
  19. <UL>
  20.  
  21.     <LI><A HREF="#name">NAME</A></LI><LI><A HREF="#supportedplatforms">SUPPORTED PLATFORMS</A></LI>
  22.  
  23.     <LI><A HREF="#synopsis">SYNOPSIS</A></LI>
  24.     <LI><A HREF="#description">DESCRIPTION</A></LI>
  25.     <LI><A HREF="#examples">EXAMPLES</A></LI>
  26.     <LI><A HREF="#note">NOTE</A></LI>
  27.     <LI><A HREF="#author">AUTHOR</A></LI>
  28. </UL>
  29. <!-- INDEX END -->
  30.  
  31. <HR>
  32. <P>
  33. <H1><A NAME="name">NAME</A></H1>
  34. <P>Net::servent - by-name interface to Perl's built-in getserv*() functions</P>
  35. <P>
  36. <HR>
  37. <H1><A NAME="supportedplatforms">SUPPORTED PLATFORMS</A></H1>
  38. <UL>
  39. <LI>Linux</LI>
  40. <LI>Solaris</LI>
  41. <LI>Windows</LI>
  42. </UL>
  43. <HR>
  44. <H1><A NAME="synopsis">SYNOPSIS</A></H1>
  45. <PRE>
  46.  use Net::servent;
  47.  $s = getservbyname(shift || 'ftp') || die "no service";
  48.  printf "port for %s is %s, aliases are %s\n",
  49.     $s->name, $s->port, "@{$s->aliases}";</PRE>
  50. <PRE>
  51.  use Net::servent qw(:FIELDS);
  52.  getservbyname(shift || 'ftp') || die "no service";
  53.  print "port for $s_name is $s_port, aliases are @s_aliases\n";</PRE>
  54. <P>
  55. <HR>
  56. <H1><A NAME="description">DESCRIPTION</A></H1>
  57. <P>This module's default exports override the core getservent(),
  58. getservbyname(), and
  59. <CODE>getnetbyport()</CODE> functions, replacing them with versions that return
  60. ``Net::servent'' objects.  They take default second arguments of ``tcp''.  This object has methods that return the similarly
  61. named structure field name from the C's servent structure from <EM>netdb.h</EM>;
  62. namely name, aliases, port, and proto.  The aliases
  63. method returns an array reference, the rest scalars.</P>
  64. <P>You may also import all the structure fields directly into your namespace
  65. as regular variables using the :FIELDS import tag.  (Note that this still
  66. overrides your core functions.)  Access these fields as variables named
  67. with a preceding <CODE>n_</CODE>.  Thus, <CODE>$serv_obj->name()</CODE> corresponds to
  68. $s_name if you import the fields.  Array references are available as
  69. regular array variables, so for example <CODE>@{ $serv_obj->aliases()
  70. }</CODE> would be simply @s_aliases.</P>
  71. <P>The <CODE>getserv()</CODE> function is a simple front-end that forwards a numeric
  72. argument to getservbyport(), and the rest to getservbyname().</P>
  73. <P>To access this functionality without the core overrides,
  74. pass the <A HREF="../../lib/Pod/perlfunc.html#item_use"><CODE>use</CODE></A> an empty import list, and then access
  75. function functions with their full qualified names.
  76. On the other hand, the built-ins are still available
  77. via the <CODE>CORE::</CODE> pseudo-package.</P>
  78. <P>
  79. <HR>
  80. <H1><A NAME="examples">EXAMPLES</A></H1>
  81. <PRE>
  82.  use Net::servent qw(:FIELDS);</PRE>
  83. <PRE>
  84.  while (@ARGV) {
  85.      my ($service, $proto) = ((split m!/!, shift), 'tcp');
  86.      my $valet = getserv($service, $proto);
  87.      unless ($valet) {
  88.          warn "$0: No service: $service/$proto\n"
  89.          next;
  90.      }
  91.      printf "service $service/$proto is port %d\n", $valet->port;
  92.      print "alias are @s_aliases\n" if @s_aliases;
  93.  }</PRE>
  94. <P>
  95. <HR>
  96. <H1><A NAME="note">NOTE</A></H1>
  97. <P>While this class is currently implemented using the Class::Struct
  98. module to build a struct-like class, you shouldn't rely upon this.</P>
  99. <P>
  100. <HR>
  101. <H1><A NAME="author">AUTHOR</A></H1>
  102. <P>Tom Christiansen</P>
  103. <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
  104. <TR><TD CLASS=block VALIGN=MIDDLE WIDTH=100% BGCOLOR="#cccccc">
  105. <STRONG><P CLASS=block> Net::servent - by-name interface to Perl's built-in getserv* functions</P></STRONG>
  106. </TD></TR>
  107. </TABLE>
  108.  
  109. </BODY>
  110.  
  111. </HTML>
  112.