PERLPLAN9(1) Perl Programmers Reference Guide PERLPLAN9(1)
perlplan9 - Plan 9-specific documentation for Perl
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 cant find answers in these man pages, contact
Luther Huffman at firstname.lastname@example.org and well try to answer them.
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
Some scripts, usually identified with a *.PL extension, are self-con
figuring and are able to correctly create their own shebang path from
config information located in Plan 9 Perl. These you wont need to be
Whats 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, File
Handle, Fcntl, and POSIX. Expect to see others (and DynaLoading!) in
Whats not in Plan 9 Perl
As mentioned previously, dynamic loading isnt 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" arent provided because the concept
does not exist within Plan 9. Others, such as some of the socket-
related functions, simply havent 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 shouldnt 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 9s ANSI
POSIX Environment (APE). Signal stacking isnt supported. The signals
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
WELCOME to Plan 9 Perl, brave soul!
This is a preliminary alpha version of Plan 9 Perl. Still to be
implemented are MakeMaker and DynaLoader. Many perl commands are
missing or currently behave in an inscrutable manner. These gaps will,
with perseverance and a modicum of luck, be remedied in the near
future.To install this software:
1. Create the source directories and libraries for perl by running the
plan9/setup.rc command (i.e., located in the plan9 subdirectory).
Note: the setup routine assumes that you havent dearchived these files
into /sys/src/cmd/perl. After running setup.rc you may delete the copy
of the source you originally detarred, as source code has now been
installed in /sys/src/cmd/perl. If you plan on installing perl binaries
for all 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)
If you wish to install perl versions for all architectures (68020,
mips, sparc and 386) run:
3. Wait. The build process will take a *long* time because perl boot
straps itself. A 75MHz Pentium, 16MB RAM machine takes roughly 30 min
utes 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:
To begin your reading, start with:
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.)
"As many as there are grains of sand on all the beaches of the world .
. ." - Carl Sagan
This document was revised 09-October-1996 for Perl 5.003_7.
Direct questions, comments, and the unlikely bug report (ahem) direct
Luther Huffman, email@example.com, Strategic Computer Solutions,
perl v5.8.8 2008-04-25 PERLPLAN9(1)