perlmpeix.html
来自「perl教程」· HTML 代码 · 共 650 行 · 第 1/2 页
HTML
650 行
</dd>
</li>
<dt><strong><a name="item_install">INSTALL</a></strong>
<dd>
<p>Perl/iX Installation script.</p>
</dd>
</li>
<dt><strong><a name="item_libshp3k">LIBSHP3K</a></strong>
<dd>
<p>Script to convert *.a system archive libraries to *.sl shared libraries.</p>
</dd>
</li>
<dt><strong><a name="item_perl">PERL</a></strong>
<dd>
<p>Perl NMPRG executable. A version-numbered backup copy also
exists. You might wish to "ln -s /PERL/PUB/PERL /usr/local/bin/perl".</p>
</dd>
</li>
<dt><strong><a name="item__2ecpan_2f">.cpan/</a></strong>
<dd>
<p>Much add-on source code downloaded with the CPAN module.</p>
</dd>
</li>
<dt><strong><a name="item_lib_2f">lib/</a></strong>
<dd>
<p>Perl libraries, both core and add-on.</p>
</dd>
</li>
<dt><strong><a name="item_man_2f">man/</a></strong>
<dd>
<p>Perl man page documentation.</p>
</dd>
</li>
<dt><strong><a name="item_public_html_2ffeedback_2ecgi">public_html/feedback.cgi</a></strong>
<dd>
<p>Sample feedback CGI form written in Perl.</p>
</dd>
</li>
<dt><strong><a name="item_src_2fperl_2d5_2e6_2e0_2dmpe">src/perl-5.6.0-mpe</a></strong>
<dd>
<p>Source code.</p>
</dd>
</li>
</dl>
<p>
</p>
<hr />
<h1><a name="how_to_compile_perl_ix">How to Compile Perl/iX</a></h1>
<ol>
<li>
<p>cd src/perl-5.6.0-mpe</p>
</li>
<li>
<p>Read the INSTALL file for the official instructions</p>
</li>
<li>
<p>./Configure -d</p>
</li>
<li>
<p>make</p>
</li>
<li>
<p>./mpeix/relink</p>
</li>
<li>
<p>make test (expect approximately 15 out of 11306 subtests to fail,
mostly due to MPE not supporting hard links, UDP socket problems,
and handling <a href="../../lib/Pod/perlfunc.html#item_exit"><code>exit()</code></a> return codes improperly)</p>
</li>
<li>
<p>make install</p>
</li>
<li>
<p>Optionally create symbolic links that point to the Perl
executable, i.e. ln -s /PERL/PUB/PERL /usr/local/bin/perl</p>
</li>
</ol>
<p>The summary test results from "cd t; ./perl -I../lib harness":</p>
<pre>
Failed Test Status Wstat Total Fail Failed List of failed
---------------------------------------------------------------------------
io/fs.t 29 8 27.59% 2-5, 7-9, 11
io/openpid.t 10 1 10.00% 7
lib/io_sock.t 14 1 7.14% 13
lib/io_udp.t 7 2 28.57% 3, 5
lib/posix.t 27 1 3.70% 12
op/lex_assign.t 187 1 0.53% 13
op/stat.t 58 1 1.72% 3
15 tests and 94 subtests skipped.
Failed 7/236 test scripts, 97.03% okay. 15/11306 subtests failed, 99.87% okay.</pre>
<p>
</p>
<hr />
<h1><a name="getting_started_with_perl_ix">Getting Started with Perl/iX</a></h1>
<p>Create your Perl script files with "#!/PERL/PUB/perl" (or an
equivalent symbolic link) as the first line. Use the chmod command to
make sure that your script has execute permission. Run your script!</p>
<p>Be sure to take a look at the CPAN module list
( <a href="http://www.cpan.org/CPAN.html">http://www.cpan.org/CPAN.html</a> ). A wide variety of free Perl software
is available. You can automatically download these packages by using
the CPAN module ( <a href="http://theoryx5.uwinnipeg.ca/CPAN/data/perl/CPAN.html">http://theoryx5.uwinnipeg.ca/CPAN/data/perl/CPAN.html</a> ).</p>
<p>
</p>
<hr />
<h1><a name="mpe_ix_implementation_considerations">MPE/iX Implementation Considerations</a></h1>
<p>There some minor functionality issues to be aware of when comparing
Perl for Unix (Perl/UX) to Perl/iX:</p>
<ul>
<li>
<p>MPE gcc/ld doesn't properly support linking NMPRG executables against
NMXL dynamic libraries, so you must manually run mpeix/relink after
each re-build of Perl.</p>
</li>
<li>
<p>Perl/iX File::Copy will use MPE's /bin/cp command to copy files by
name in order to preserve file attributes like file code.</p>
</li>
<li>
<p>MPE (and thus Perl/iX) lacks support for setgrent(), endgrent(),
setpwent(), endpwent().</p>
</li>
<li>
<p>MPE (and thus Perl/iX) lacks support for hard links.</p>
</li>
<li>
<p>MPE requires <code>GETPRIVMODE()</code> in order to <a href="../../lib/Pod/perlfunc.html#item_bind"><code>bind()</code></a> to ports less than 1024.
Perl/iX will call <code>GETPRIVMODE()</code> automatically on your behalf if you
attempt to <a href="../../lib/Pod/perlfunc.html#item_bind"><code>bind()</code></a> to these low-numbered ports. Note that the Perl/iX
executable and the PERL account do not normally have CAP=PM, so if you
will be bind()-ing to these privileged ports, you will manually need
to add PM capability as appropriate.</p>
</li>
<li>
<p>MPE requires that you <a href="../../lib/Pod/perlfunc.html#item_bind"><code>bind()</code></a> to an IP address of zero. Perl/iX
automatically replaces the IP address that you pass to <a href="../../lib/Pod/perlfunc.html#item_bind"><code>bind()</code></a> with
a zero.</p>
</li>
<li>
<p>MPE requires <code>GETPRIVMODE()</code> in order to setuid(). There are too many
calls to <code>setuid()</code> within Perl/iX, so I have not attempted an automatic
<code>GETPRIVMODE()</code> solution similar to bind().</p>
</li>
</ul>
<p>
</p>
<hr />
<h1><a name="known_perl_ix_bugs_under_investigation">Known Perl/iX Bugs Under Investigation</a></h1>
<p>None.</p>
<p>
</p>
<hr />
<h1><a name="perl_ix_todo_list">Perl/iX To-Do List</a></h1>
<ul>
<li>
<p>Make <code>setuid()/setgid()</code> support work.</p>
</li>
<li>
<p>Make sure that <a href="../../lib/Pod/perlfunc.html#item_fcntl"><code>fcntl()</code></a> against a socket descriptor is redirected to sfcntl().</p>
</li>
<li>
<p>Add support for Berkeley DB once I've finished porting Berkeley DB.</p>
</li>
<li>
<p>Write an MPE XS extension library containing miscellaneous important
MPE functions like GETPRIVMODE(), GETUSERMODE(), and sfcntl().</p>
</li>
</ul>
<p>
</p>
<hr />
<h1><a name="perl_ix_change_history">Perl/iX Change History</a></h1>
<p>May 6, 1999</p>
<ul>
<li>
<p>Patch LBCJXT6A is required on MPE/iX 5.5 machines in order to prevent
Perl/iX from dying with an unresolved external reference to _getenv_libc.</p>
</li>
</ul>
<p>April 7, 1999</p>
<ul>
<li>
<p>Updated to version 5.005_03.</p>
</li>
<li>
<p>The official source distribution once again compiles "straight out
of the box" for MPE.</p>
</li>
<li>
<p>The current incarnation of the 5.5 POSIX filename extended
characters patch is now MPEKX40B.</p>
</li>
<li>
<p>The LIBSHP3K *.a -> *.sl library conversion script is now included
as /PERL/PUB/LIBSHP3K.</p>
</li>
</ul>
<p>November 20, 1998</p>
<ul>
<li>
<p>Updated to version 5.005_02.</p>
</li>
<li>
<p>Fixed a DynaLoader bug that was unable to load symbols from relative
path name libraries.</p>
</li>
<li>
<p>Fixed a .xs compilation bug where the mpeixish.sh include file wasn't
being installed into the proper directory.</p>
</li>
<li>
<p>All bugfixes will be submitted back to the official Perl developers.</p>
</li>
<li>
<p>The current incarnation of the POSIX filename extended characters
patch is now MPEKXJ3A.</p>
</li>
</ul>
<p>August 14, 1998</p>
<ul>
<li>
<p>The previous POSIX filename extended characters patch MPEKX44C has
been superseded by MPEKXB5A.</p>
</li>
</ul>
<p>August 7, 1998</p>
<ul>
<li>
<p>The previous POSIX filename extended characters patch MPEKX76A has
been superseded by MPEKX44C.</p>
</li>
</ul>
<p>July 28, 1998</p>
<ul>
<li>
<p>Updated to version 5.005_01.</p>
</li>
</ul>
<p>July 23, 1998</p>
<ul>
<li>
<p>Updated to version 5.005 (production release). The public
freeware sources are now 100% MPE-ready "straight out of the box".</p>
</li>
</ul>
<p>July 17, 1998</p>
<ul>
<li>
<p>Updated to version 5.005b1 (public beta release). The public
freeware sources are now 99.9% MPE-ready. By installing and
testing this beta on your own HP3000, you will be helping to
insure that the final release of 5.005 will be 100% MPE-ready and
100% bug free.</p>
</li>
<li>
<p>My MPE binary release is now extracted using my standard INSTALL script.</p>
</li>
</ul>
<p>July 15, 1998</p>
<ul>
<li>
<p>Changed startperl to #!/PERL/PUB/perl so that Perl will recognize
scripts more easily and efficiently.</p>
</li>
</ul>
<p>July 8, 1998</p>
<ul>
<li>
<p>Updated to version 5.004_70 (internal developer release) which is now
MPE-ready. The next public freeware release of Perl should compile
"straight out of the box" on MPE. Note that this version of Perl/iX
was strictly internal to me and never publicly released. Note that
[21]BIND/iX is now required (well, the include files and libbind.a) if
you wish to compile Perl/iX.</p>
</li>
</ul>
<p>November 6, 1997</p>
<ul>
<li>
<p>Updated to version 5.004_04. No changes in MPE-specific functionality.</p>
</li>
</ul>
<p>October 16, 1997</p>
<ul>
<li>
<p>Added Demos section to the Perl/iX home page so you can see some
sample Perl applications running on my 3000.</p>
</li>
</ul>
<p>October 3, 1997</p>
<ul>
<li>
<p>Added System Requirements section to the Perl/iX home page just so the
prerequisites stand out more. Various other home page tweaks.</p>
</li>
</ul>
<p>October 2, 1997</p>
<ul>
<li>
<p>Initial public release.</p>
</li>
</ul>
<p>September 1997</p>
<ul>
<li>
<p>Porting begins.</p>
</li>
</ul>
<p>
</p>
<hr />
<h1><a name="author">AUTHOR</a></h1>
<p>Mark Bixby, <a href="http://www.bixby.org/mark/">http://www.bixby.org/mark/</a></p>
</body>
</html>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?