README.vos
PERLVOS(S)       Perl Programmers Reference Guide      PERLVOS(S)



NAME
       README.vos - Perl for Stratus VOS

SYNOPSIS
       This is a port of Perl version 5 to VOS.  Perl is a
       scripting or macro language that is popular on many sys-
       tems.  See your local computer bookstore for a number of
       good books on Perl.

       Stratus POSIX Support

       Note that there are two different implementations of
       POSIX.1 support on VOS.  There is an alpha version of
       POSIX that is available from the Stratus anonymous ftp
       site (ftp://ftp.stra-
       tus.com/pub/vos/posix/alpha/alpha.html).  There is a gen-
       erally-available version of POSIX that comes with the VOS
       Standard C compiler and C runtime in VOS Release 14.3.0 or
       higher.  This port of POSIX will compile and bind with
       either version of POSIX.

       Most of the Perl features should work on VOS regardless of
       which version of POSIX that you are using.  However, the
       alpha version of POSIX is missing a number of key func-
       tions, and therefore any attempt by perl.pm to call the
       following unimplemented POSIX functions will result in an
       error message and an immediate and fatal call to the VOS
       debugger.  They are "dup", "fork", and "waitpid".  The
       lack of these functions pretty much prevents you from
       starting VOS commands and grabbing their output in perl.
       The workaround is to run the commands outside of perl,
       then have perl process the output file.  These functions
       are all available in the generally-available version of
       POSIX.

INSTALLING PERL IN VOS
       Compiling Perl 5 on VOS

       Before you can build Perl 5 on VOS, you need to have or
       acquire the following additional items.

       1    The VOS Standard C Compiler and Runtime, or the VOS
            Standard C Cross-Compiler.  This is a standard Stra-
            tus product.

       2    Either the VOS OS TCP/IP or STCP product set.  If you
            are building with the alpha version of POSIX you need
            the OS TCP/IP product set.  If you are building with
            the generally-available version of POSIX you need the
            STCP product set.  These are standard Stratus prod-
            ucts.

       3    Either the alpha or generally-available version of
            the VOS POSIX.1 environment.

            The alpha version of POSIX.1 support is available on
            the Stratus FTP site.  Login anonymously to ftp.stra-
            tus.com and get the file
            /pub/vos/posix/alpha/posix.save.evf.gz in binary
            file-transfer mode.  Or use the Uniform Resource
            Locator (URL) ftp://ftp.stra-
            tus.com/pub/vos/alpha/posix.save.evf.gz from your web
            browser.  Instructions for unbundling this file are
            at ftp://ftp.stratus.com/pub/vos/utility/util-
            ity.html.  This is not a standard Stratus product.

            The generally-available version of POSIX.1 support is
            bundled with the VOS Standard C compiler and Runtime
            (or Cross-Compiler) in VOS Release 14.3.0 or higher.
            This is a standard Stratus product.

       4    You must compile this version of Perl 5 on VOS
            Release 14.1.0 or higher because some of the perl
            source files contain more than 32,767 source lines.
            Due to VOS release-compatibility rules, this port of
            perl may not execute on VOS Release 12 or earlier.

       To build perl 5, change to the "vos" subdirectory and type
       the command "compile_perl -processor X", where X is the
       processor type (mc68020, i80860, pa7100, pa8000) that you
       wish to use.  Note that the generally-available version of
       POSIX.1 support is not available for the mc68020 or i80860
       processors.

       You must have purchased the VOS Standard C Cross Compiler
       in order to compile perl for a processor type that is dif-
       ferent from the processor type of the module.

       Note that code compiled for the pa7100 processor type can
       execute on the PA7100, PA8000, PA8500 and PA8600 proces-
       sors, and that code compiled for the pa8000 processor type
       can execute on the PA8000, PA8500 and PA8600 processors.

       Installing Perl 5 on VOS


       1   Create the directory >system>ported>command_library.

       2   Copy the appropriate version of the perl program mod-
           ule to this directory.  For example, with your current
           directory set to the top-level directory of Perl 5, to
           install the executable program module for the Motorola
           68K architecture, enter:

                     !copy_file vos>obj>perl.pm >system>ported>command_library>*

           (If you wish to use both Perl version 4 and Perl ver-
           sion 5, you must give them different names; for exam-
           ple, perl.pm and perl5.pm).

       3   Create the directory >system>ported>perl>lib.

       4   Copy all of the files and subdirectories from the lib
           subdirectory into this new directory.  For example,
           with the current directory set to the top-level direc-
           tory of the perl distribution, enter:

                     !copy_dir lib >system>ported>perl>lib>5.6


       5   While there are currently no architecture-specific
           extensions or modules distributed with perl, the fol-
           lowing directories can be used to hold such files:

                     >system>ported>perl>lib>5.6.68k
                     >system>ported>perl>lib>5.6.860
                     >system>ported>perl>lib>5.6.7100
                     >system>ported>perl>lib>5.6.8000


       6   Site-specific perl extensions and modules can be
           installed in one of two places.  Put architecture-
           independent files into:

                     >system>ported>perl>lib>site>5.6

           Put architecture-dependent files into one of the fol-
           lowing directories:

                     >system>ported>perl>lib>site>5.6.68k
                     >system>ported>perl>lib>site>5.6.860
                     >system>ported>perl>lib>site>5.6.7100
                     >system>ported>perl>lib>site>5.6.8000


       7   You can examine the @INC variable from within a perl
           program to see the order in which Perl searches these
           directories.

USING PERL IN VOS
       Unimplemented Features

       If perl is built with the alpha version of VOS POSIX.1
       support and if it attempts to call an unimplemented VOS
       POSIX.1 function, it will print a fatal error message and
       enter the VOS debugger.  This error is not recoverable.
       See vos_dummies.c for a list of the unimplemented POSIX.1
       functions.  To see what functions are unimplemented and
       what the error message looks like, compile and execute
       "test_vos_dummies.c".

       Restrictions

       This port of Perl version 5 to VOS prefers Unix-style,
       slash-separated pathnames over VOS-style greater-than-sep-
       arated pathnames.  VOS-style pathnames should work in most
       contexts, but if you have trouble, replace all greater-
       than characters by slash characters.  Because the slash
       character is used as a pathname delimiter, Perl cannot
       process VOS pathnames containing a slash character in a
       directory or file name; these must be renamed.

       This port of Perl also uses Unix-epoch date values inter-
       nally.  As long as you are dealing with ASCII character
       string representations of dates, this should not be an
       issue.  The supported epoch is January 1, 1980 to January
       17, 2038.

       See the file pod/perlport.pod for more information about
       the VOS port of Perl.

SUPPORT STATUS
       I'm offering this port "as is".  You can ask me questions,
       but I can't guarantee I'll be able to answer them.  There
       are some excellent books available on the Perl language;
       consult a book seller.

AUTHOR
       Paul Green (Paul_Green@stratus.com)

LAST UPDATE
       February 13, 2001



perl v5.6.1                 2001-03-03                 PERLVOS(S)