Path: usenet.cise.ufl.edu!usenet.eel.ufl.edu!www.nntp.primenet.com!nntp.primenet.com!howland.erols.net!news.mathworks.com!uunet!in1.uu.net!204.177.236.3!trojan.neta.com!nntp0.teleport.com!usenet
From: [email protected] (David J. Fiander)
Newsgroups: comp.lang.perl.announce,comp.lang.perl.misc
Subject: Perl 5.003 Beta port to AS/400 V3R2 now available
Followup-To: comp.lang.perl.misc
Date: 10 Dec 1996 19:32:20 GMT
Organization: Mortice Kern Systems, Inc.
Lines: 161
Approved: [email protected] (comp.lang.perl.announce)
Message-ID: <[email protected]>
NNTP-Posting-Host: gadget.cscaper.com
X-Disclaimer: The "Approved" header verifies header information for article transmission and does not imply approval of content.
Xref: usenet.cise.ufl.edu comp.lang.perl.announce:67 comp.lang.perl.misc:11438

*********************************************************************
*                                                                   *
*  Announcing Perl Version 5.0.X for AS/400 Version 3 Release 2     *
*                 Beta code availability for download               *
*                      December 9, 1996                             *
*                                                                   *
*********************************************************************


IBM's AS/400 division and MKS have completed a beta port of perl
5.003 to that AS/400 Version 3, Release 2.

The Perl distribution for the AS/400 is packaged as two (2) SAVF
format files:

- The perl source, libraries, and test suites (perlsrc.savf)
- A precompiled perl executable with the perl libraries
         and test suites (perlpgm.savf)

These files are (or very soon will be) available at all CPAN
sites in the directory ports/as400.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

NOTE: Please see the installation notes and the readme which is
     included in the save file for complete unpack and installation
     instructions and any known problems and limitations.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


IBM will not provide service and support for this Perl beta. Do
not call IBM Support Line for assistance. Please send your
comments to the newsgroups comp.lang.perl.misc or
comp.sys.ibm.as400.misc, which we will be monitoring, or send
email. See http://www.as400.ibm.com/feedback/feedback.htm for an
easy to fill out form to send us feedback.  We really want your
feedback on the Perl beta implementation.

         Installation and Build Notes for AS/400 Perl
         --------------------------------------------

The Perl distribution for the AS/400 is packaged as two (2) SAVF
format files:

       - The perl source, libraries, and test suites
       - A precompiled perl executable with the perl libraries
         and test suites

The libraries and test suites are stored as a separate
SAVF-format file within the file you download.  Once you've
unpacked the save file you downloaded, you will have to unpack
the libraries and test suites.

Whether you download the source or the precompiled executable
depends on whether or not you have the AS/400 ILE/C compiler and
are interested in building from source.

Before ftping the save files onto your AS/400 system, you must
pre-create the destination save files so that ftp will store the
data properly:

       CRTSAVF FILE(*CURLIB/PERLSRC) TEXT('AS/400 Perl Source')
       CRTSAVF FILE(*CURLIB/PERLPGM) TEXT('AS/400 Perl Executable')

To unpack the save files, run the following commands:

       RSTOBJ OBJ(*ALL) SAVLIB(PERL5) DEV(*SAVF) SAVF(*CURLIB/PERLSRC)
       RSTOBJ OBJ(*ALL) SAVLIB(PERL5) DEV(*SAVF) SAVF(*CURLIB/PERLPGM)

If you downloaded the source distribution, you have to build the
executable:

       CALL PGM(PERL5/CRTPERLMOD)
       CALL PGM(PERL5/CRTPERLPGM)

Once you have an executable, you have to either add the library
PERL5 to your library list or move PERL5/PERL.PGM to a library in
your library list.

Finally, you have to install the perl script library into the HFS
from the save file that was unpacked from the distribution file:

       RST DEV('/QSYS.LIB/PERL5.LIB/PERLLIB.FILE')
       RST DEV('/QSYS.LIB/PERL5.LIB/PERLLIB.FILE')


You're now ready to program in perl.


                 Release Notes for AS/400 Perl
                 -----------------------------

The core perl language is fully supported on the AS/400, except
for the following issues:

- Because there is no relationship between the ANSI C FILEs
 stdin, stdout, and stderr and the POSIX file descriptors 0, 1,
 and 2, perl does not support redirecting these file descriptors
 using the

       open(STDOUT, ">boo");

 notation.  Nor does the dup() function support operating on
 STDIN, STDOUT, or STDERR.

- In the Beta, Because of the lack of support for pipes, the
 backquote operation and opening of pipes to processes with the
 open() function are not supported.

When using perl to develop Web CGI programs, there are two issues
that you must watch for:

- Because stdin, stdout, and stderr are provided as text-mode
 record-based files, your CGI program cannot write binary
 (eg. GIF) data to standard output, and the text produced by the
 CGI must consist of lines shorter that 254 characters.  Longer
 lines will be truncated.

- Perl scripts are not directly executable.  To invoke a perl
 program as a CGI, you must write a small CL program that will
 dispatch to the perl script itself.
There are also some issues related to the AS/400 environment that
developers porting scripts from other environments must be aware
of:

- The arguments to the perl system() function and any command
 substitutions (ie. backquoted strings) have to be written as
 OS/400 CL calls.  There are no Unix utilities available on the
 AS/400 at present, so programs that rely on them will have to
 be restructured to use the equivalent CL functionality.

- OS/400 doesn't support I/O redirection the same way that Unix
 does.  Pipes and command substitutions (backquoted strings) are
 implemented using a CL OVRDBF command to override STDOUT, which
 is supported by OS/4000 ILE/C.  If the programs being invoked
 do not refer to STDOUT, then the command substitution or pipe
 will not work correctly.

- Perl reads scripts and data out of the integrated filesystem
 (IFS).  To access native OS/400 files, you must use the
 IFS-style of name.  See the AS/400 documentation about the IFS
 for details about file naming.

- The AS/400 is an EBCDIC system.  All scripts being transfered
 from ASCII environments will have to be translated.  FTP does
 this automatically for text transfers, as does the AS/400
 client access Windows file server when copying into the HFS.

- In the beta distribution, pipes are implemented using temporary
 files.  The pipe process runs to completion, and then perl
 reads the output produced by the sub-process.  That is, perl
 and the pipe process do not run in parallel as they would on a
 Unix system; if the pipe process doesn't exit, then perl will
 never run.  Similarly, perl cannot write to pipes in the beta
 distribution.

- For the beta distribution, all perl scripts and input data must
 be in CP-037 to function properly.