Plan 9 from Bell Labs’s /usr/web/sources/contrib/gabidiaz/root/sys/man/1perl/perlplan9

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


.\" Automatically generated by Pod::Man v1.34, Pod::Parser v1.13
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sh \" Subsection heading
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings.  \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote.  | will give a
.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
.\" expand to `' in nroff, nothing in troff, for use with C<>.
.tr \(*W-|\(bv\*(Tr
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
.    ds -- \(*W-
.    ds PI pi
.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
.    ds L" ""
.    ds R" ""
.    ds C` ""
.    ds C' ""
'br\}
.el\{\
.    ds -- \|\(em\|
.    ds PI \(*p
.    ds L" ``
.    ds R" ''
'br\}
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
.\" entries marked with X<> in POD.  Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.if \nF \{\
.    de IX
.    tm Index:\\$1\t\\n%\t"\\$2"
..
.    nr % 0
.    rr F
.\}
.\"
.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.hy 0
.if n .na
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
.    \" fudge factors for nroff and troff
.if n \{\
.    ds #H 0
.    ds #V .8m
.    ds #F .3m
.    ds #[ \f1
.    ds #] \fP
.\}
.if t \{\
.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
.    ds #V .6m
.    ds #F 0
.    ds #[ \&
.    ds #] \&
.\}
.    \" simple accents for nroff and troff
.if n \{\
.    ds ' \&
.    ds ` \&
.    ds ^ \&
.    ds , \&
.    ds ~ ~
.    ds /
.\}
.if t \{\
.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
.    \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
.    \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
.    \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
.    ds : e
.    ds 8 ss
.    ds o a
.    ds d- d\h'-1'\(ga
.    ds D- D\h'-1'\(hy
.    ds th \o'bp'
.    ds Th \o'LP'
.    ds ae ae
.    ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "PERLPLAN9 1"
.TH PERLPLAN9 1 "2002-11-24" "perl v5.8.0" "Perl Programmers Reference Guide"
.SH "NAME"
perlplan9 \- Plan 9\-specific documentation for Perl
.SH "DESCRIPTION"
.IX Header "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 lutherh@stratcom.com and we'll try to 
answer them.
.Sh "Invoking Perl"
.IX Subsection "Invoking Perl"
Perl is invoked from the command line as described in 
perl. Most perl scripts, however, do have a first line 
such as \*(L"#!/usr/local/bin/perl\*(R". This is known as a shebang 
(shell\-bang) statement and tells the \s-1OS\s0 shell where to find 
the perl interpreter. In Plan 9 Perl this statement should be 
\&\*(L"#!/bin/perl\*(R" if you wish to be able to directly invoke the 
script by its name.
     Alternatively, you may invoke perl with the command \*(L"Perl\*(R"
instead of \*(L"perl\*(R". This will produce Acme-friendly error
messages of the form \*(L"filename:18\*(R".
.PP
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.
.Sh "What's in Plan 9 Perl"
.IX Subsection "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 \s-1POSIX\s0. Expect 
to see others (and DynaLoading!) in the future.
.Sh "What's not in Plan 9 Perl"
.IX Subsection "What's not in Plan 9 Perl"
As mentioned previously, dynamic loading isn't currently 
available nor is MakeMaker. Both are high-priority items.
.Sh "Perl5 Functions not currently supported in Plan 9 Perl"
.IX Subsection "Perl5 Functions not currently supported in Plan 9 Perl"
Some, such as \f(CW\*(C`chown\*(C'\fR and \f(CW\*(C`umask\*(C'\fR 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.
.PP
The functions not currently implemented include:
.PP
.Vb 5
\&    chown, chroot, dbmclose, dbmopen, getsockopt, 
\&    setsockopt, recvmsg, sendmsg, getnetbyname, 
\&    getnetbyaddr, getnetent, getprotoent, getservent, 
\&    sethostent, setnetent, setprotoent, setservent, 
\&    endservent, endnetent, endprotoent, umask
.Ve
.PP
There may be several other functions that have undefined 
behavior so this list shouldn't be considered complete.
.Sh "Signals in Plan 9 Perl"
.IX Subsection "Signals in Plan 9 Perl"
For compatibility with perl scripts written for the Unix 
environment, Plan 9 Perl uses the \s-1POSIX\s0 signal emulation
provided in Plan 9's \s-1ANSI\s0 \s-1POSIX\s0 Environment (\s-1APE\s0). Signal stacking
isn't supported. The signals provided are:
.PP
.Vb 4
\&    SIGHUP, SIGINT, SIGQUIT, SIGILL, SIGABRT,
\&    SIGFPE, SIGKILL, SIGSEGV, SIGPIPE, SIGPIPE, SIGALRM, 
\&    SIGTERM, SIGUSR1, SIGUSR2, SIGCHLD, SIGCONT,
\&    SIGSTOP, SIGTSTP, SIGTTIN, SIGTTOU
.Ve
.SH "COMPILING AND INSTALLING PERL ON PLAN 9"
.IX Header "COMPILING AND INSTALLING PERL ON PLAN 9"
\&\s-1WELCOME\s0 to Plan 9 Perl, brave soul!
.PP
.Vb 5
\&   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:
.Ve
.PP
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 haven't 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 \*(L"setup.rc \-a\*(R".
.PP
2. After making sure that you have adequate privileges to build system
software, from /sys/src/cmd/perl/5.00301 (adjust version
appropriately) run:
.PP
.Vb 1
\&        mk install
.Ve
.PP
If you wish to install perl versions for all architectures (68020,
mips, sparc and 386) run:
.PP
.Vb 1
\&        mk installall
.Ve
.PP
3. Wait. The build process will take a *long* time because perl
bootstraps itself. A 75MHz Pentium, 16MB \s-1RAM\s0 machine takes roughly 30
minutes to build the distribution from scratch.
.Sh "Installing Perl Documentation on Plan 9"
.IX Subsection "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:
.PP
.Vb 1
\&        mk man
.Ve
.PP
To begin your reading, start with:
.PP
.Vb 1
\&        man perl
.Ve
.PP
This is a good introduction and will direct you towards other man
pages that may interest you.
.PP
(Note: \*(L"mk man\*(R" may produce some extraneous noise. Fear not.)
.SH "BUGS"
.IX Header "BUGS"
\&\*(L"As many as there are grains of sand on all the beaches of the 
world . . .\*(R" \- Carl Sagan
.SH "Revision date"
.IX Header "Revision date"
This document was revised 09\-October\-1996 for Perl 5.003_7.
.SH "AUTHOR"
.IX Header "AUTHOR"
Direct questions, comments, and the unlikely bug report (ahem) direct
comments toward:
.PP
Luther Huffman, lutherh@stratcom.com, 
Strategic Computer Solutions, Inc.		

Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to webmaster@9p.io.