perlmpeix.pod

来自「MSYS在windows下模拟了一个类unix的终端」· POD 代码 · 共 676 行

POD
676
字号
If you read this file _as_is_, just ignore the funny characters yousee. It is written in the POD format (see perlpod manpage) which isspecially designed to be readable as is.=head1 NAMEREADME.mpeix - Perl/iX for HP e3000 MPE                                       =head1 SYNOPSIS   http://www.bixby.org/mark/perlix.html   Perl language for MPE   Last updated June 2, 2000 @ 0400 UTC   =head1 NOTEThis is a podified version of the above-mentioned web page,podified by Jarkko Hietaniemi 2001-Jan-01.=head1 What's NewJune 1, 2000       =over 4=item *Rebuilt to be compatible with mod_perl.  If you plan on usingmod_perl, you MUST download and install this version of Perl/iX!       =item *bincompat5005="undef": sorry, but you will have to recompile anybinary 5.005 extensions that you may be using (if any; there is no5.005 code in what you download from bixby.org)uselargefiles="undef": not available in MPE for POSIX files yet.       =item *Now bundled with various add-on packages:=over 8=item *libnet (http://www.gbarr.demon.co.uk/libnet/FAQ.html)=item *libwww-perl (LWP) which lets Perl programs behave like web browsers:           1. #!/PERL/PUB/perl    2. use LWP::Simple;    3. $doc = get('http://www.bixby.org/mark/perlix.html');  # reads the       web page into variable $doc       (http://www.bixby.org/mark/perlix.html)=item *mod_perl (just the perl portion; the actual DSO will be releasedsoon with Apache/iX 1.3.12 from bixby.org).  This module allows you towrite high performance persistent Perl CGI scripts and all sorts ofcool things. (http://perl.apache.org/)   and much much more hiding under /PERL/PUB/.cpan/   =item *The CPAN module now works for automatic downloading andinstalling of add-on packages:    1. export FTP_PASSIVE=1    2. perl -MCPAN -e shell    3. Ignore any terminal I/O related complaints!       (http://theoryx5.uwinnipeg.ca/CPAN/data/perl/CPAN.html)=back=backMay 20, 2000=over 4=item *Updated to version 5.6.0.  Builds straight out of the box on MPE/iX.=item *Perl's getpwnam() function which had regressed to beingunimplemented on MPE is now implemented once again.       =backSeptember 17, 1999=over 4=item *Migrated from cccd.edu to bixby.org.=back   =head1 WelcomeThis is the official home page for the HP e3000 MPE/iX(http://www.businessservers.hp.com/) port of the Perl scriptinglanguage (http://www.perl.com/) which gives you all of the power of C,awk, sed, and sh in a single language. Check here for the latest news,implemented functionality, known bugs, to-do list, etc. Status reportsabout major milestones will also be posted to the HP3000-L mailing list(http://www.lsoft.com/scripts/wl.exe?SL1=HP3000-L&H=RAVEN.UTC.EDU) andits associated gatewayed newsgroup comp.sys.hp.mpe.   I'm doing this port because I can't live without Perl on the Unixmachines that I administer, and I want to have the same poweravailable to me on MPE.   Please send your comments, questions, and bug reports directly to me,Mark Bixby (http://www.bixby.org/mark/), by e-mailing tomark@bixby.org. Or just post them to HP3000-L.   The platform I'm using to do this port is an HP 3000 957RX runningMPE/iX 6.0 and using the GNU gcc C compiler(http://jazz.external.hp.com/src/gnu/gnuframe.html).   The combined porting wisdom from all of my ports can be found in myMPE/iX Porting Guide (http://www.bixby.org/mark/porting.html).   IMPORTANT NOTICE: Yes, I do work for the HP CSY R&D lab, but ALL ofthe software you download from bixby.org is my personal freeware thatis NOT supported by HP.=head1 System Requirements=over 4=item *MPE/iX 5.5 or later. This version of Perl/iX does NOT run onMPE/iX 5.0 or earlier, nor does it run on "classic" MPE/V machines.=item *If you wish to recompile Perl, you must install both GNUCORE andGNUGCC from jazz (http://jazz.external.hp.com/src/gnu/gnuframe.html).=item *Perl/iX will be happier on MPE/iX 5.5 if you install the MPEKX40Bextended POSIX filename characters patch, but this is optional.=item *Patch LBCJXT6A is required on MPE/iX 5.5 machines in order toprevent Perl/iX from dying with an unresolved external referenceto _getenv_libc.=item *If you will be compiling Perl/iX yourself, you will also needSyslog/iX (http://www.bixby.org/mark/syslogix.html) and the/BIND/PUB/include and /BIND/PUB/lib portions of BIND/iX(http://www.bixby.org/mark/bindix.html).=back=head1 How to Obtain Perl/iX=over 4=item 1.Download Perl using either FTP.ARPA.SYS or some other client=item 2.Extract the installation script=item 3.Edit the installation script=item 4.Run the installation script=item 5.Convert your *.a system archive libraries to *.sl shared libraries       =backDownload Perl using FTP.ARPA.SYS from your HP 3000 (the preferredmethod).....      :HELLO MANAGER.SYS    :XEQ FTP.ARPA.SYS    open ftp.bixby.org    anonymous    your@email.address    bytestream    cd /pub/mpe    get perl-5.6.0-mpe.tar.Z /tmp/perl.tar.Z;disc=2147483647    exit.....Or download using some other generic web or ftp client (the alternatemethod)  Download the following files (make sure that you use "binary mode" orwhatever client feature that is 8-bit clean):=over 4=item *Perl from    http://www.bixby.org/ftp/pub/mpe/perl-5.6.0-mpe.tar.Zor    ftp://ftp.bixby.org/pub/mpe/perl-5.6.0-mpe.tar.Z       =item *Upload those files to your HP 3000 in an 8-bit clean bytestream manner to:    /tmp/perl.tar.Z       =item *Then extract the installation script (after both download methods)      :CHDIR /tmp    :XEQ TAR.HPBIN.SYS 'xvfopz /tmp/perl.tar.Z INSTALL'=item *Edit the installation script  Examine the accounting structure creation commands and modify ifnecessary (adding additional capabilities, choosing a non-systemvolume set, etc).    :XEQ VI.HPBIN.SYS /tmp/INSTALL=item *Run the installation script.  The accounting structure will be created and then all files will beextracted from the archive.    :XEQ SH.HPBIN.SYS /tmp/INSTALL=item *Convert your *.a system archive libraries to *.sl shared libraries  You only have to do this ONCE on your MPE/iX 5.5 machine in order toconvert /lib/lib*.a and /usr/lib/lib*.a libraries to their *.slequivalents.  This step should not be necessary on MPE/iX 6.0 or latermachines because the 6.0 or later update process does it for you.    :XEQ SH.HPBIN.SYS /PERL/PUB/LIBSHP3K=back=head1 Distribution Contents Highlights=over 4=item READMEThe file you're reading now.          =item INSTALLPerl/iX Installation script.          =item LIBSHP3KScript to convert *.a system archive libraries to *.sl shared libraries.          =item PERLPerl NMPRG executable.  A version-numbered backup copy alsoexists.  You might wish to "ln -s /PERL/PUB/PERL /usr/local/bin/perl".          =item .cpan/Much add-on source code downloaded with the CPAN module.          =item lib/Perl libraries, both core and add-on.          =item man/Perl man page documentation.=item public_html/feedback.cgiSample feedback CGI form written in Perl.          =item src/perl-5.6.0-mpeSource code.=back   =head1 How to Compile Perl/iX=over 4=item 1.cd src/perl-5.6.0-mpe=item 2.Read the INSTALL file for the official instructions=item 3../Configure -d=item  4.make=item 5../mpeix/relink=item  6.make test (expect approximately 15 out of 11306 subtests to fail,mostly due to MPE not supporting hard links, UDP socket problems,and handling exit() return codes improperly)=item 7.make install=item 8.Optionally create symbolic links that point to the Perlexecutable, i.e. ln -s /PERL/PUB/PERL /usr/local/bin/perl       =backThe summary test results from "cd t; ./perl -I../lib harness":  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.=head1 Getting Started with Perl/iXCreate your Perl script files with "#!/PERL/PUB/perl" (or anequivalent symbolic link) as the first line.  Use the chmod command tomake sure that your script has execute permission. Run your script!   Be sure to take a look at the CPAN module list(http://www.cpan.org/CPAN.html). A wide variety of free Perl softwareis available.  You can automatically download these packages by usingthe CPAN module (http://theoryx5.uwinnipeg.ca/CPAN/data/perl/CPAN.html).=head1 MPE/iX Implementation ConsiderationsThere some minor functionality issues to be aware of when comparingPerl for Unix (Perl/UX) to Perl/iX:=over 4=item *MPE gcc/ld doesn't properly support linking NMPRG executables againstNMXL dynamic libraries, so you must manually run mpeix/relink aftereach re-build of Perl.=item *Perl/iX File::Copy will use MPE's /bin/cp command to copy files byname in order to preserve file attributes like file code.=item *MPE (and thus Perl/iX) lacks support for setgrent(), endgrent(),setpwent(), endpwent().=item *MPE (and thus Perl/iX) lacks support for hard links.=item *MPE requires GETPRIVMODE() in order to bind() to ports less than 1024.Perl/iX will call GETPRIVMODE() automatically on your behalf if youattempt to bind() to these low-numbered ports.  Note that the Perl/iXexecutable and the PERL account do not normally have CAP=PM, so if youwill be bind()-ing to these privileged ports, you will manually needto add PM capability as appropriate.=item *MPE requires that you bind() to an IP address of zero.  Perl/iXautomatically replaces the IP address that you pass to bind() witha zero.=item *If you use Perl/iX fcntl() against a socket it will fail, because MPErequires that you use sfcntl() instead.  Perl/iX does not presentlysupport sfcntl().=item *MPE requires GETPRIVMODE() in order to setuid().  There are too manycalls to setuid() within Perl/iX, so I have not attempted an automaticGETPRIVMODE() solution similar to bind().=back   =head1 Known Bugs Under InvestigationNone.   =head1 To-Do List=over 4=item *Make setuid()/setgid() support work.=item *Make sure that fcntl() against a socket descriptor is redirected to sfcntl().=item *Add support for Berkeley DB once I've finished porting Berkeley DB.=item *Write an MPE XS extension library containing miscellaneous importantMPE functions like GETPRIVMODE(), GETUSERMODE(), and sfcntl().   =back=head1 Change HistoryMay 6, 1999       =over 4=item *Patch LBCJXT6A is required on MPE/iX 5.5 machines in order to preventPerl/iX from dying with an unresolved external reference to _getenv_libc.       =backApril 7, 1999=over 4=item *Updated to version 5.005_03.=item *The official source distribution once again compiles "straight outof the box" for MPE.=item *The current incarnation of the 5.5 POSIX filename extendedcharacters patch is now MPEKX40B.=item *The LIBSHP3K *.a -> *.sl library conversion script is now includedas /PERL/PUB/LIBSHP3K.       =backNovember 20, 1998=over 4=item *Updated to version 5.005_02.=item *Fixed a DynaLoader bug that was unable to load symbols from relativepath name libraries.=item *Fixed a .xs compilation bug where the mpeixish.sh include file wasn'tbeing installed into the proper directory.=item *All bugfixes will be submitted back to the official Perl developers.=item *The current incarnation of the POSIX filename extended characterspatch is now MPEKXJ3A.       =back   August 14, 1998=over 4=item *The previous POSIX filename extended characters patch MPEKX44C hasbeen superseded by MPEKXB5A.       =back   August 7, 1998=over 4=item *The previous POSIX filename extended characters patch MPEKX76A hasbeen superseded by MPEKX44C.       =over 4=back   July 28, 1998=item *Updated to version 5.005_01.       =back   July 23, 1998=over 4=item *Updated to version 5.005 (production release).  The publicfreeware sources are now 100% MPE-ready "straight out of the box".       =back   July 17, 1998=over 4=item *Updated to version 5.005b1 (public beta release).  The publicfreeware sources are now 99.9% MPE-ready.  By installing andtesting this beta on your own HP3000, you will be helping toinsure that the final release of 5.005 will be 100% MPE-ready and100% bug free.=item *My MPE binary release is now extracted using my standard INSTALL script.       =back   July 15, 1998=over 4=item *Changed startperl to #!/PERL/PUB/perl so that Perl will recognizescripts more easily and efficiently.       =back   July 8, 1998=over 4=item *Updated to version 5.004_70 (internal developer release) which is nowMPE-ready.  The next public freeware release of Perl should compile"straight out of the box" on MPE.  Note that this version of Perl/iXwas strictly internal to me and never publicly released.  Note that[21]BIND/iX is now required (well, the include files and libbind.a) ifyou wish to compile Perl/iX.       =back   November 6, 1997=over 4=item *Updated to version 5.004_04.  No changes in MPE-specific functionality.       =back   October 16, 1997=over 4=item *Added Demos section to the Perl/iX home page so you can see somesample Perl applications running on my 3000.       =back   October 3, 1997=over 4=item *Added System Requirements section to the Perl/iX home page just so theprerequisites stand out more. Various other home page tweaks.       =back   October 2, 1997=over 4=item *Initial public release.       =back   September 1997=over 4=item *Porting begins.=back   =head1 Author   Mark Bixby, mark@bixby.org

⌨️ 快捷键说明

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