perlos390.pod
来自「视频监控网络部分的协议ddns,的模块的实现代码,请大家大胆指正.」· POD 代码 · 共 459 行 · 第 1/2 页
POD
459 行
A message of the form: comp/cpp.............ERROR CBC3191 ./.301989890.c:1 The character $ is not a valid C source character. FSUM3065 The COMPILE step ended with return code 12. FSUM3017 Could not compile .301989890.c. Correct the errors and try again. okindicates that the t/comp/cpp.t test of Perl's -P command line switch haspassed but that the particular invocation of c89 -E in the cpp script doesnot suppress the C compiler check of source code validity.=item *A message of the form: io/openpid...........CEE5210S The signal SIGHUP was received. CEE5210S The signal SIGHUP was received. CEE5210S The signal SIGHUP was received. okindicates that the t/io/openpid.t test of Perl has passed but done sowith extraneous messages on stderr from CEE.=item *A message of the form: lib/ftmp-security....File::Temp::_gettemp: Parent directory (/tmp/) is not safe (sticky bit not set when world writable?) at lib/ftmp-security.t line 100 File::Temp::_gettemp: Parent directory (/tmp/) is not safe (sticky bit not set when world writable?) at lib/ftmp-security.t line 100 okindicates a problem with the permissions on your /tmp directory within the HFS.To correct that problem issue the command: chmod a+t /tmpfrom an account with write access to the directory entry for /tmp.=item *Out of Memory!Recent perl test suite is quite memory hunrgy. In addition to the commentsabove on memory limitations it is also worth checking for _CEE_RUNOPTSin your environment. Perl now has (in miniperlmain.c) a C #pragmato set CEE run options, but the environment variable wins.The C code asks for: #pragma runopts(HEAP(2M,500K,ANYWHERE,KEEP,8K,4K) STACK(,,ANY,) ALL31(ON))The important parts of that are the second argument (the increment) to HEAP,and allowing the stack to be "Above the (16M) line". If the heapincrement is too small then when perl (for example loading unicode/Name.pl) triesto create a "big" (400K+) string it cannot fit in a single segmentand you get "Out of Memory!" - even if there is still plenty of memoryavailable.A related issue is use with perl's malloc. Perl's malloc uses C<sbrk()>to get memory, and C<sbrk()> is limited to the first allocation so in thiscase something like: HEAP(8M,500K,ANYWHERE,KEEP,8K,4K)is needed to get through the test suite.=back=head2 Installation Anomalies with Perl on OS/390The installman script will try to run on OS/390. There will be fewer errorsif you have a roff utility installed. You can obtain GNU groff from theRedbook SG24-5944-00 ftp site.=head2 Usage Hints for Perl on OS/390When using perl on OS/390 please keep in mind that the EBCDIC and ASCIIcharacter sets are different. See perlebcdic.pod for more on such characterset issues. Perl builtin functions that may behave differently underEBCDIC are also mentioned in the perlport.pod document.Open Edition (UNIX System Services) from V2R8 onward does support#!/path/to/perl script invocation. There is a PTF available fromIBM for V2R7 that will allow shell/kernel support for #!. USSreleases prior to V2R7 did not support the #! means of script invocation.If you are running V2R6 or earlier then see: head `whence perldoc`for an example of how to use the "eval exec" trick to ask the shell tohave Perl run your scripts on those older releases of Unix System Services.If you are having trouble with square brackets then consider switching yourrlogin or telnet client. Try to avoid older 3270 emulators and ISHELL forworking with Perl on USS.=head2 Floating Point Anomalies with Perl on OS/390There appears to be a bug in the floating point implementation on S/390systems such that calling int() on the product of a number and a smallmagnitude number is not the same as calling int() on the quotient ofthat number and a large magnitude number. For example, in the followingPerl code: my $x = 100000.0; my $y = int($x * 1e-5) * 1e5; # '0' my $z = int($x / 1e+5) * 1e5; # '100000' print "\$y is $y and \$z is $z\n"; # $y is 0 and $z is 100000Although one would expect the quantities $y and $z to be the same and equalto 100000 they will differ and instead will be 0 and 100000 respectively.The problem can be further examined in a roughly equivalent C program: #include <stdio.h> #include <math.h> main() { double r1,r2; double x = 100000.0; double y = 0.0; double z = 0.0; x = 100000.0 * 1e-5; r1 = modf (x,&y); x = 100000.0 / 1e+5; r2 = modf (x,&z); printf("y is %e and z is %e\n",y*1e5,z*1e5); /* y is 0.000000e+00 and z is 1.000000e+05 (with c89) */ }=head2 Modules and Extensions for Perl on OS/390Pure pure (that is non xs) modules may be installed via the usual: perl Makefile.PL make make test make installIf you built perl with dynamic loading capability then that would alsobe the way to build xs based extensions. However, if you built perl withthe default static linking you can still build xs based extensions for OS/390but you will need to follow the instructions in ExtUtils::MakeMaker forbuilding statically linked perl binaries. In the simplest configurationsbuilding a static perl + xs extension boils down to: perl Makefile.PL make make perl make test make install make -f Makefile.aperl inst_perl MAP_TARGET=perlIn most cases people have reported better results with GNU make ratherthan the system's /bin/make program, whether for plain modules or forxs based extensions.If the make process encounters trouble with either compilation orlinking then try setting the _C89_CCMODE to 1. Assuming sh is yourlogin shell then run: export _C89_CCMODE=1If tcsh is your login shell then use the setenv command.=head1 AUTHORSDavid Fiander and Peter Prymmer with thanks to Dennis Longneckerand William Raffloer for valuable reports, LPAR and PTF feedback.Thanks to Mike MacIsaac and Egon Terwedow for SG24-5944-00.Thanks to Ignasi Roca for pointing out the floating point problems.Thanks to John Goodyear for dynamic loading help.=head1 SEE ALSOL<INSTALL>, L<perlport>, L<perlebcdic>, L<ExtUtils::MakeMaker>. http://www-1.ibm.com/servers/eserver/zseries/zos/unix/bpxa1toy.html http://www.redbooks.ibm.com/abstracts/sg245944.html http://www-1.ibm.com/servers/eserver/zseries/zos/unix/bpxa1ty1.html#opensrc http://www.xray.mpe.mpg.de/mailing-lists/perl-mvs/ http://publibz.boulder.ibm.com:80/cgi-bin/bookmgr_OS390/BOOKS/ceea3030/ http://publibz.boulder.ibm.com:80/cgi-bin/bookmgr_OS390/BOOKS/CBCUG030/=head2 Mailing list for Perl on OS/390If you are interested in the VM/ESA, z/OS (formerly known as OS/390)and POSIX-BC (BS2000) ports of Perl then see the perl-mvs mailing list.To subscribe, send an empty message to perl-mvs-subscribe@perl.org.See also: http://lists.perl.org/showlist.cgi?name=perl-mvsThere are web archives of the mailing list at: http://www.xray.mpe.mpg.de/mailing-lists/perl-mvs/ http://archive.develooper.com/perl-mvs@perl.org/=head1 HISTORYThis document was originally written by David Fiander for the 5.005release of Perl.This document was podified for the 5.005_03 release of Perl 11 March 1999.Updated 28 November 2001 for broken URLs.Updated 12 November 2000 for the 5.7.1 release of Perl.Updated 15 January 2001 for the 5.7.1 release of Perl.Updated 24 January 2001 to mention dynamic loading.Updated 12 March 2001 to mention //'SYS1.TCPPARMS(TCPDATA)'.=cut
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?