ch9.htm

来自「《Perl 5 Unreleased》」· HTM 代码 · 共 1,365 行 · 第 1/5 页

HTM
1,365
字号
<BR>

37 print &quot;RCPT TO: &lt;&quot;,$in{'To'},&quot;&gt;\n&quot;;

<BR>

38 print &quot;DATA\n&quot;;<BR>

39 print &quot;Subject: &quot;,$in{'Subject'},&quot;\n\n&quot;;

<BR>

40<BR>

41 print &quot;====================\n&quot;;<BR>

42 print &quot;From: &quot;,$in{'From'},&quot;\n&quot;;<BR>

43 print &quot;To: &quot;,$in{'To'},&quot;\n&quot;;<BR>

44 print &quot;Subject: &quot;,$in{'Subject'},&quot;\n&quot;;

<BR>

45<BR>

46 foreach $key (keys(%in)) {<BR>

47&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (($key eq 'Data') ||

($key eq 'Body') || ($key eq 'Address') ||<BR>

48&nbsp;&nbsp;&nbsp;&nbsp; ($key eq 'data') || ($key eq 'body')

|| ($key eq 'address')) {<BR>

49&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

print $key,&quot;:\n&quot;,$in{$key},&quot;\n&quot;;<BR>

50&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>

51&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else {<BR>

52&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

if (($key ne 'From') &amp;&amp; ($key ne 'To') &amp;&amp; ($key

ne 'Subject') &amp;&amp;<BR>

53 ($key ne 'from') &amp;&amp; ($key ne 'to') &amp;&amp; ($key

ne 'subject')) {<BR>

54&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print

$key,&quot;: &quot;,$in{$key},&quot;\n&quot;;<BR>

55&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

}<BR>

56&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>

57 }<BR>

58<BR>

59 print &quot;.\n&quot;;<BR>

60 print &quot;QUIT\n&quot;;</FONT></TT>

</BLOCKQUOTE>

<HR>

<H2><A NAME="UnsupportedFunctions"><FONT SIZE=5 COLOR=#FF0000>Unsupported

Functions</FONT></A></H2>

<P>

The difference between NT and UNIX in operating system behavior

is apparent when you have to port Perl applications. Some of the

UNIX versions of Perl system functions have no equivalent functions

in NT. Similarly, NT functions that deal with the Registry have

no equivalent functions in UNIX.

<P>

Most UNIX system calls are not available in NT. Some of these

functions use an error message to warn you that they are not implemented.

Most cause the script to fail on unresolved references. (The warning

capability for all functions requires modifications to the main

Perl 5 distribution and has not been undertaken.) The most up-to-date

list is at <TT><A HREF="http://www.hip.perl.com/" tppabs="http://www.hip.perl.com/">http://www.hip.perl.com</A></TT>.

The following functions were supported at the time of writing:

<P>

<TABLE>

<TR VALIGN=TOP><TD COLSPAN=2 WIDTH=499><B>Network Routines</B></TD></TR>

<TR VALIGN=TOP><TD WIDTH=229>

<BLOCKQUOTE>

<TT><FONT FACE="Courier">getnetbyname()</FONT></TT>

</BLOCKQUOTE>



</TD><TD WIDTH=270><TT><FONT FACE="Courier">setprotoent()</FONT></TT>

</TD></TR>

<TR VALIGN=TOP><TD WIDTH=229>

<BLOCKQUOTE>

<TT><FONT FACE="Courier">getnetbyaddr()</FONT></TT>

</BLOCKQUOTE>



</TD><TD WIDTH=270><TT><FONT FACE="Courier">setservent()</FONT></TT>

</TD></TR>

<TR VALIGN=TOP><TD WIDTH=229>

<BLOCKQUOTE>

<TT><FONT FACE="Courier">getnetent()</FONT></TT>

</BLOCKQUOTE>



</TD><TD WIDTH=270><TT><FONT FACE="Courier">endhostent()</FONT></TT>

</TD></TR>

<TR VALIGN=TOP><TD WIDTH=229>

<BLOCKQUOTE>

<TT><FONT FACE="Courier">getprotoent()</FONT></TT>

</BLOCKQUOTE>



</TD><TD WIDTH=270><TT><FONT FACE="Courier">endnetent()</FONT></TT>

</TD></TR>

<TR VALIGN=TOP><TD WIDTH=229>

<BLOCKQUOTE>

<TT><FONT FACE="Courier">getservent()</FONT></TT>

</BLOCKQUOTE>



</TD><TD WIDTH=270><TT><FONT FACE="Courier">endprotoent()</FONT></TT>

</TD></TR>

<TR VALIGN=TOP><TD WIDTH=229>

<BLOCKQUOTE>

<TT><FONT FACE="Courier">sethostent()</FONT></TT>

</BLOCKQUOTE>



</TD><TD WIDTH=270><TT><FONT FACE="Courier">endservent()</FONT></TT>

</TD></TR>

<TR VALIGN=TOP><TD WIDTH=229>

<BLOCKQUOTE>

<TT><FONT FACE="Courier">setnetent()</FONT></TT>

</BLOCKQUOTE>



</TD><TD WIDTH=270><TT><FONT FACE="Courier">socketpair()</FONT></TT>

</TD></TR>

<TR VALIGN=TOP><TD COLSPAN=2 WIDTH=499><B>System V-Compatible Ipc Routines</B>

</TD></TR>

<TR VALIGN=TOP><TD WIDTH=229>

<BLOCKQUOTE>

<TT><FONT FACE="Courier">msgctl()</FONT></TT>

</BLOCKQUOTE>



</TD><TD WIDTH=270><TT><FONT FACE="Courier">semop()</FONT></TT>

</TD></TR>

<TR VALIGN=TOP><TD WIDTH=229>

<BLOCKQUOTE>

<TT><FONT FACE="Courier">msgget()</FONT></TT>

</BLOCKQUOTE>



</TD><TD WIDTH=270><TT><FONT FACE="Courier">shmctl()</FONT></TT>

</TD></TR>

<TR VALIGN=TOP><TD WIDTH=229>

<BLOCKQUOTE>

<TT><FONT FACE="Courier">msgrcv()</FONT></TT>

</BLOCKQUOTE>



</TD><TD WIDTH=270><TT><FONT FACE="Courier">shmget()</FONT></TT>

</TD></TR>

<TR VALIGN=TOP><TD WIDTH=229>

<BLOCKQUOTE>

<TT><FONT FACE="Courier">msgsnd()</FONT></TT>

</BLOCKQUOTE>



</TD><TD WIDTH=270><TT><FONT FACE="Courier">shmread()</FONT></TT>

</TD></TR>

<TR VALIGN=TOP><TD WIDTH=229>

<BLOCKQUOTE>

<TT><FONT FACE="Courier">semctl()</FONT></TT>

</BLOCKQUOTE>



</TD><TD WIDTH=270><TT><FONT FACE="Courier">shmwrite()</FONT></TT>

</TD></TR>

<TR VALIGN=TOP><TD WIDTH=229>

<BLOCKQUOTE>

<TT><FONT FACE="Courier">semget()</FONT></TT>

</BLOCKQUOTE>



</TD><TD WIDTH=270></TD></TR>

<TR VALIGN=TOP><TD WIDTH=229><B>I/O Routines</B></TD><TD WIDTH=270></TD>

</TR>

<TR VALIGN=TOP><TD WIDTH=229>

<BLOCKQUOTE>

<TT><FONT FACE="Courier">ioctl()</FONT></TT>

</BLOCKQUOTE>



</TD><TD WIDTH=270><TT><FONT FACE="Courier">select($w, $x, $y, $z)*</FONT></TT>

</TD></TR>

<TR VALIGN=TOP><TD WIDTH=229><B>Filesystem Routines</B></TD><TD WIDTH=270>

</TD></TR>

<TR VALIGN=TOP><TD WIDTH=229>

<BLOCKQUOTE>

<TT><FONT FACE="Courier">chmod()</FONT></TT>

</BLOCKQUOTE>



</TD><TD WIDTH=270><TT><FONT FACE="Courier">readlink()</FONT></TT>

</TD></TR>

<TR VALIGN=TOP><TD WIDTH=229>

<BLOCKQUOTE>

<TT><FONT FACE="Courier">chroot()</FONT></TT>

</BLOCKQUOTE>



</TD><TD WIDTH=270><TT><FONT FACE="Courier">symlink()</FONT></TT>

</TD></TR>

<TR VALIGN=TOP><TD WIDTH=229>

<BLOCKQUOTE>

<TT><FONT FACE="Courier">fcntl()</FONT></TT>

</BLOCKQUOTE>



</TD><TD WIDTH=270><TT><FONT FACE="Courier">sysread()</FONT></TT>

</TD></TR>

<TR VALIGN=TOP><TD WIDTH=229>

<BLOCKQUOTE>

<TT><FONT FACE="Courier">flock()</FONT></TT>

</BLOCKQUOTE>



</TD><TD WIDTH=270><TT><FONT FACE="Courier">syswrite()</FONT></TT>

</TD></TR>

<TR VALIGN=TOP><TD WIDTH=229>

<BLOCKQUOTE>

<TT><FONT FACE="Courier">link()</FONT></TT>

</BLOCKQUOTE>



</TD><TD WIDTH=270><TT><FONT FACE="Courier">umask()</FONT></TT>

</TD></TR>

<TR VALIGN=TOP><TD WIDTH=229>

<BLOCKQUOTE>

<TT><FONT FACE="Courier">lstat()</FONT></TT>

</BLOCKQUOTE>



</TD><TD WIDTH=270><TT><FONT FACE="Courier">utime()</FONT></TT>

</TD></TR>

<TR VALIGN=TOP><TD WIDTH=229><B>Security-Related Routines</B></TD><TD WIDTH=270>

</TD></TR>

<TR VALIGN=TOP><TD WIDTH=229>

<BLOCKQUOTE>

<TT><FONT FACE="Courier">crypt()</FONT></TT>

</BLOCKQUOTE>



</TD><TD WIDTH=270><TT><FONT FACE="Courier">getgrgid()</FONT></TT>

</TD></TR>

<TR VALIGN=TOP><TD WIDTH=229>

<BLOCKQUOTE>

<TT><FONT FACE="Courier">getlogin()</FONT></TT>

</BLOCKQUOTE>



</TD><TD WIDTH=270><TT><FONT FACE="Courier">getpwent()</FONT></TT>

</TD></TR>

<TR VALIGN=TOP><TD WIDTH=229>

<BLOCKQUOTE>

<TT><FONT FACE="Courier">getpgrp()</FONT></TT>

</BLOCKQUOTE>



</TD><TD WIDTH=270><TT><FONT FACE="Courier">getgrent()</FONT></TT>

</TD></TR>

<TR VALIGN=TOP><TD WIDTH=229>

<BLOCKQUOTE>

<TT><FONT FACE="Courier">getppid()</FONT></TT>

</BLOCKQUOTE>



</TD><TD WIDTH=270><TT><FONT FACE="Courier">setpwent()</FONT></TT>

</TD></TR>

<TR VALIGN=TOP><TD WIDTH=229>

<BLOCKQUOTE>

<TT><FONT FACE="Courier">getpriority()</FONT></TT>

</BLOCKQUOTE>



</TD><TD WIDTH=270><TT><FONT FACE="Courier">setgrent()</FONT></TT>

</TD></TR>

<TR VALIGN=TOP><TD WIDTH=229>

<BLOCKQUOTE>

<TT><FONT FACE="Courier">getpwnam()</FONT></TT>

</BLOCKQUOTE>



</TD><TD WIDTH=270><TT><FONT FACE="Courier">endpwent()</FONT></TT>

</TD></TR>

<TR VALIGN=TOP><TD WIDTH=229>

<BLOCKQUOTE>

<TT><FONT FACE="Courier">getgrnam()</FONT></TT>

</BLOCKQUOTE>



</TD><TD WIDTH=270><TT><FONT FACE="Courier">endgrent()</FONT></TT>

</TD></TR>

<TR VALIGN=TOP><TD WIDTH=229>

<BLOCKQUOTE>

<TT><FONT FACE="Courier">getpwuid()</FONT></TT>

</BLOCKQUOTE>



</TD><TD WIDTH=270><TT><FONT FACE="Courier">setpgrp()</FONT></TT>

</TD></TR>

<TR VALIGN=TOP><TD WIDTH=229><B>Process-Related Routines</B></TD><TD WIDTH=270>

</TD></TR>

<TR VALIGN=TOP><TD WIDTH=229>

<BLOCKQUOTE>

<TT><FONT FACE="Courier">fork()</FONT></TT>

</BLOCKQUOTE>



</TD><TD WIDTH=270><TT><FONT FACE="Courier">times()</FONT></TT>

</TD></TR>

<TR VALIGN=TOP><TD WIDTH=229>

<BLOCKQUOTE>

<TT><FONT FACE="Courier">kill()</FONT></TT>

</BLOCKQUOTE>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?