Back to main site | Back to man page index

PERLPLAN9(1)                               Perl Programmers Reference Guide                              PERLPLAN9(1)



NAME
       perlplan9 - Plan 9-specific documentation for Perl

DESCRIPTION
       These are a few notes describing features peculiar to Plan 9 Perl. As such, it is not intended to be a
       replacement for the rest of the Perl 5 documentation (which is both copious and excellent). If you have any
       questions to which you can't find answers in these man pages, contact Luther Huffman at [email protected]
       and we'll try to answer them.

   Invoking Perl
       Perl is invoked from the command line as described in perl. Most perl scripts, however, do have a first line
       such as "#!/usr/local/bin/perl". This is known as a shebang (shell-bang) statement and tells the OS shell
       where to find the perl interpreter. In Plan 9 Perl this statement should be "#!/bin/perl" if you wish to be
       able to directly invoke the script by its name.
            Alternatively, you may invoke perl with the command "Perl" instead of "perl". This will produce Acme-
       friendly error messages of the form "filename:18".

       Some scripts, usually identified with a *.PL extension, are self-configuring and are able to correctly create
       their own shebang path from config information located in Plan 9 Perl. These you won't need to be worried
       about.

   What's in Plan 9 Perl
       Although Plan 9 Perl currently only  provides static loading, it is built with a number of useful extensions.
       These include Opcode, FileHandle, Fcntl, and POSIX. Expect to see others (and DynaLoading!) in the future.

   What's not in Plan 9 Perl
       As mentioned previously, dynamic loading isn't currently available nor is MakeMaker. Both are high-priority
       items.

   Perl5 Functions not currently supported in Plan 9 Perl
       Some, such as "chown" and "umask" aren't provided because the concept does not exist within Plan 9. Others,
       such as some of the socket-related functions, simply haven't been written yet. Many in the latter category may
       be supported in the future.

       The functions not currently implemented include:

           chown, chroot, dbmclose, dbmopen, getsockopt,
           setsockopt, recvmsg, sendmsg, getnetbyname,
           getnetbyaddr, getnetent, getprotoent, getservent,
           sethostent, setnetent, setprotoent, setservent,
           endservent, endnetent, endprotoent, umask

       There may be several other functions that have undefined behavior so this list shouldn't be considered
       complete.

   Signals in Plan 9 Perl
       For compatibility with perl scripts written for the Unix environment, Plan 9 Perl uses the POSIX signal
       emulation provided in Plan 9's ANSI POSIX Environment (APE). Signal stacking isn't supported. The signals
       provided are:

           SIGHUP, SIGINT, SIGQUIT, SIGILL, SIGABRT,
           SIGFPE, SIGKILL, SIGSEGV, SIGPIPE, SIGPIPE, SIGALRM,
           SIGTERM, SIGUSR1, SIGUSR2, SIGCHLD, SIGCONT,
           SIGSTOP, SIGTSTP, SIGTTIN, SIGTTOU

COMPILING AND INSTALLING PERL ON PLAN 9

       architectures, run "setup.rc -a".

       2. After making sure that you have adequate privileges to build system software, from
       /sys/src/cmd/perl/5.00301 (adjust version appropriately) run:

               mk install

       If you wish to install perl versions for all architectures (68020, mips, sparc and 386) run:

               mk installall

       3. Wait. The build process will take a *long* time because perl bootstraps itself. A 75MHz Pentium, 16MB RAM
       machine takes roughly 30 minutes to build the distribution from scratch.

   Installing Perl Documentation on Plan 9
       This perl distribution comes with a tremendous amount of documentation. To add these to the built-in manuals
       that come with Plan 9, from /sys/src/cmd/perl/5.00301 (adjust version appropriately) run:

               mk man

       To begin your reading, start with:

               man perl

       This is a good introduction and will direct you towards other man pages that may interest you.

       (Note: "mk man" may produce some extraneous noise. Fear not.)

BUGS
       "As many as there are grains of sand on all the beaches of the world . . ." - Carl Sagan

Revision date
       This document was revised 09-October-1996 for Perl 5.003_7.

AUTHOR
       Direct questions, comments, and the unlikely bug report (ahem) direct comments toward:

       Luther Huffman, [email protected], Strategic Computer Solutions, Inc.



perl v5.16.3                                          2013-02-26                                         PERLPLAN9(1)