home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-02-25 | 56.0 KB | 1,354 lines |
- Newsgroups: comp.sources.misc
- From: jv@mh.nl (Johan Vromans)
- Subject: v28i077: perlref - Perl Reference Guide 4.019.1 [LaTeX and Postscript], Part01/03
- Message-ID: <csm-v28i077=perlref.115540@sparky.IMD.Sterling.COM>
- X-Md4-Signature: 13160a47dcd886bdd3f352808b720726
- Date: Wed, 26 Feb 1992 17:58:07 GMT
- Approved: kent@sparky.imd.sterling.com
-
- Submitted-by: jv@mh.nl (Johan Vromans)
- Posting-number: Volume 28, Issue 77
- Archive-name: perlref/part01
- Environment: Perl, Postscript, Latex
-
- Finally here it is: the new and updated version of the
-
- Perl Reference Guide.
-
- This version has been updated to match Perl 4.019.
-
- Two ways to produce the Guide are included: a ready-to-print
- PostScript version and a LaTeX source kit.
-
- The Perl Reference Guide is a typeset quick reference guide to
- Larry Wall's Perl program.
-
- It contains a concise description of all Perl 4.0 statements,
- functions, variables and lots of other useful information.
- The Guide is based on Perl version 4.0, patchlevel 19.
-
- The purpose of the Reference Guide is to aid in the use of Perl, to
- look up the syntax of specific functions, statements and the meaning
- of built-in variables. It is *NOT* a self-contained user guide -
- basic knowledge of the Perl language is required. It is *NOT* complete
- - some of the more obscure variants of perl constructs have been left
- out. But all functions and variables are mentioned in at least one
- way they can be used.
-
- Happy hacking!
-
- Johan
- --
- Johan Vromans jv@mh.nl via internet backbones
- Multihouse Automatisering bv uucp:..!{uunet,sun4nl}!mh.nl!jv
- Doesburgweg 7, 2803 PL Gouda, The Netherlands phone/fax: +31 1820 62911/62500
- ------------------------
- #!/bin/sh
- # This is a shell archive (produced by shar 3.49)
- # To extract the files from this archive, save it to a file, remove
- # everything above the "!/bin/sh" line above, and type "sh file_name".
- #
- # existing files will NOT be overwritten unless -c is specified
- #
- # This is part 1 of a multipart archive
- # do not concatenate these parts, unpack them in order with /bin/sh
- #
- # This shar contains:
- # length mode name
- # ------ ---------- ------------------------------------------
- # 2057 -rw-r--r-- ChangeLog
- # 1112 -rw-r--r-- Layout
- # 2839 -r--r--r-- Makefile
- # 6524 -r--r--r-- README
- # 4291 -r--r--r-- parr
- # 84662 -rw-r--r-- refbase.ps
- # 6963 -r--r--r-- refbase.sty
- # 47244 -rw-r--r-- refbase.tex
- #
- if test -r _shar_seq_.tmp; then
- echo 'Must unpack archives in sequence!'
- echo Please unpack part `cat _shar_seq_.tmp` next
- exit 1
- fi
- # ============= ChangeLog ==============
- if test -f 'ChangeLog' -a X"$1" != X"-c"; then
- echo 'x - skipping ChangeLog (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting ChangeLog (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'ChangeLog' &&
- Wed Feb 19 15:02:26 1992 Johan Vromans (jv at largo)
- X
- X * refbase.sty: add support for new font selection scheme.
- X Get rid of overfull hboxes.
- X
- X * refbase.sty, refmaster.tex, ch*.tex: update for 4.019.
- X Add description for "sort { EXPR;...} @array" .
- X Describe "eval { ... }" .
- X Add "scalar(@array)" and "scalar(%array)" .
- X Small corrections.
- X
- X * Makefile: new kit assembly.
- X
- Tue Aug 27 18:41:42 1991 Johan Vromans (jv at largo)
- X
- X * ch22: add 'gethostbyaddr'
- X
- Fri Aug 2 09:44:47 1991 Johan Vromans (jv at largo)
- X
- X * parr: add code for duplex printing.
- X
- X * README: describe duplex printing, version number.
- X
- Sat Jul 27 15:23:01 1991 Johan Vromans (jv at pronto)
- X
- X * parr: Adjusted '%%Pages:' to reflect actual number of sheets.
- X
- Fri Jul 26 23:10:00 1991 Johan Vromans (jv at pronto)
- X
- X * Add Layout document that describes in more detail how the
- X Reference Guide should look like.
- X
- X * Makefile/README: Incorporate Layout.
- X
- Fri Jul 26 09:15:58 1991 Johan Vromans (jv at largo)
- X
- X * Released to USEnet (patch). Official version is 4.010.2.1.
- X
- X * ch04: typo: | -> || (two locations)
- X
- X * parr: slightly increase $topmargin for US paper.
- X
- X * ch06: typo: log or/and | & -> || &&
- X
- Thu Jul 25 11:11:24 1991 Johan Vromans (jv at largo)
- X
- X * Makefile/README: Clarify the use of guide-{odd,even?}.ps.
- X
- X * parr: Suppress extraneous %%Page comments to obtain more
- X conformant PostScript. Some PS viewers and printers (or
- X print-spoolers) seem to choke in these extraneous comments.
- X
- X Set $leftmargin to 0 for US-Letter format. According to most
- X respondents this seems to be the correct value.
- X
- Tue Jul 23 18:32:54 1991 Johan Vromans (jv at largo)
- X
- X * Makefile: allow MASTER=test for testing.
- X
- X * ch03: typo: $var -> $#var is last element of array.
- X
- X * ch00: move front page info a bit down/right.
- X
- Mon Jul 22 22:05:57 1991 Johan Vromans (jv at pronto)
- X
- X * ch00: typo: deigned -> designed.
- X
- Sat Jul 20 00:31:47 1991 Johan Vromans (jv at pronto)
- X
- X * Released to USEnet. Official version is 4.010.1.8.
- X
- X * This is a brand new version.
- X
- SHAR_EOF
- chmod 0644 ChangeLog ||
- echo 'restore of ChangeLog failed'
- Wc_c="`wc -c < 'ChangeLog'`"
- test 2057 -eq "$Wc_c" ||
- echo 'ChangeLog: original size 2057, current size' "$Wc_c"
- rm -f _shar_wnt_.tmp
- fi
- # ============= Layout ==============
- if test -f 'Layout' -a X"$1" != X"-c"; then
- echo 'x - skipping Layout (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting Layout (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'Layout' &&
- This is the layout of the pages of the reference guide
- X
- X
- X center of paper
- X |
- X +-----------------+-----------------+
- X | <----------- top margin
- X | xxxxxxxxxx : xxxxxxxxxx |
- X | xxxxxxxxxx xxxxxxxxxx |
- X | xxxxxxxxxx xxxxxxxxxx |
- X | xxxxxxxxxx xxxxxxxxxx |
- X | xxxxxxxxxx xxxxxxxxxx <------ right margin
- X | xxxxxxxxxx xxxxxxxxxx |
- X | xxxxxxxxxx xxxxxxxxxx |
- X | ^ xxxxxxxxxx xxxxxxxxxx |
- X | | xxxxxxxxxx xxxxxxxxxx |
- X | | xxxxxxxxxx : xxxxxxxxxx |
- X | | |
- X +-|---------------------------------+
- X |
- X left margin
- X
- X
- These are the values:
- X A4 (cm) US Letter (inch)
- X text width 9.0 3.5 same for both
- X text height 19.2 7.5 same for both
- X top margin 1.0 0.5
- X left margin 4.9 1.6
- X right margin 4.9 1.6
- X space between 2.0 0.8 same for both
- X
- After printing double-sided, the pages can be stapled (the ":" in the
- picture), folded, and the excess margins cut off. Personally, I cut it
- to 10.6 cm (4.2 inch).
- SHAR_EOF
- chmod 0644 Layout ||
- echo 'restore of Layout failed'
- Wc_c="`wc -c < 'Layout'`"
- test 1112 -eq "$Wc_c" ||
- echo 'Layout: original size 1112, current size' "$Wc_c"
- rm -f _shar_wnt_.tmp
- fi
- # ============= Makefile ==============
- if test -f 'Makefile' -a X"$1" != X"-c"; then
- echo 'x - skipping Makefile (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting Makefile (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'Makefile' &&
- # @(#)@ Makefile 4.2.6 - Makefile for Perl Reference Guide
- X
- # This Makefile requires perl to be in your PATH.
- X
- SHELL = /bin/sh
- X
- # Delete the next line if you use US Letter paper format
- PAPER = -a4
- X
- all: refguide.ps
- X
- 2pass: guide-odd.ps guide-even1.ps guide-even2.ps
- X
- # 2 pages per page, suitable for centrefold printing.
- refguide.ps: refbase.ps parr
- X perl ./parr $(PAPER) \
- X -o 21,2,3,20,19,4,5,18,17,6,7,16,15,8,9,14,13,10,11,12 \
- X refbase.ps > refguide.ps
- X
- # Odd and even passes for centerfold printing.
- # First print guide-odd.ps, then find out which of the others to use.
- # guide-even1.ps is for printers with correct output stacking like
- # Apple LaserWriter II.
- # guide-even2.ps for printers with reverse output stacking, like old
- # Apple LaserWriters.
- X
- guide-odd.ps: refbase.ps parr
- X perl ./parr $(PAPER) \
- X -o 21,2,19,4,17,6,15,8,13,10 refbase.ps > guide-odd.ps
- X
- guide-even1.ps: refbase.ps parr
- X perl ./parr $(PAPER) \
- X -o 11,12,9,14,7,16,5,18,3,20 refbase.ps > guide-even1.ps
- X
- guide-even2.ps: refbase.ps parr
- X perl ./parr $(PAPER) \
- X -o 3,20,5,18,7,16,9,14,11,12 refbase.ps > guide-even2.ps
- X
- clean:
- X rm -f refguide.ps guide-odd.ps guide-even1.ps guide-even2.ps \
- X refbase.dvi core *~
- X
- # For maintenance use only ...
- X
- VER = 4.019
- X
- CH = ch00.tex ch01.tex ch02.tex ch03.tex ch04.tex ch05.tex \
- X ch06.tex ch07.tex ch08.tex ch09.tex ch10.tex ch11.tex \
- X ch12.tex ch13.tex ch14.tex ch15.tex ch16.tex ch17.tex \
- X ch18.tex ch19.tex ch20.tex ch21.tex ch22.tex ch23.tex \
- X ch24.tex ch25.tex ch26.tex \
- X ch99.tex
- SRC = refbase.tex refbase.sty
- AUX = README ChangeLog Makefile parr Layout
- X
- # Our TeX places its output here, never mind if yours doesn't.
- TEXTMP = /usr/tmp/$(USER)TeX.
- X
- # NOTE: DO NOT REMOVE OR CHANGE '-ta4' EVEN IF USING NON-A4 PAPER
- refbase-ps: refbase.dvi
- X dvips -r0 -ta4 refbase.dvi
- X -if [ -f psneat.pl ]; then \
- X mv refbase.ps refbase.ps~; \
- X perl ./psneat.pl refbase.ps~ > refbase.ps; \
- X fi
- X
- refbase.dvi: $(SRC)
- X latex refbase.tex < /dev/null
- X -if [ -f $(TEXTMP)dvi ]; then \
- X mv $(TEXTMP)dvi refbase.dvi; \
- X fi
- X
- MASTER = ref
- refbase-tex: $(MASTER)master.tex $(CH) makebase.pl
- X perl ./makebase.pl $(REV) $(MASTER)master.tex > refbase.tex
- X
- kit:
- X REV=`cat Revision.SEQ`; \
- X expr $$REV + 1 >Revision.SEQ; \
- X (echo ""; echo Revision: $(VER).$$REV; what $(SRC) $(CH)) >> Revision; \
- X $(MAKE) -$(MAKEFLAGS) REV=$$REV refbase-tex refbase-ps kitinternal
- X
- kitinternal:
- X rm -f perlref_shr.* perlref_ltx.* perlref-$(VER).$(REV).tar.Z
- X shar -c -n perlref-$(VER).$(REV) -a -s 'jv@mh.nl' \
- X -o perlref-$(VER).$(REV)_shr -L30 -f $(AUX) refbase.ps
- X shar -c -n perlltx-$(VER).$(REV) -a -s 'jv@mh.nl' \
- X -o perlref-$(VER).$(REV)_ltx -L30 -f $(AUX) $(SRC)
- X pdtar -zcvf perlref-$(VER).$(REV).tar.Z $(AUX) $(SRC) refbase.ps
- X ls -l perlref-*_shr.* perlref-*_ltx.* perlref-*.tar.Z
- X
- ident:
- X what $(AUX) $(SRC)
- SHAR_EOF
- chmod 0444 Makefile ||
- echo 'restore of Makefile failed'
- Wc_c="`wc -c < 'Makefile'`"
- test 2839 -eq "$Wc_c" ||
- echo 'Makefile: original size 2839, current size' "$Wc_c"
- rm -f _shar_wnt_.tmp
- fi
- # ============= README ==============
- if test -f 'README' -a X"$1" != X"-c"; then
- echo 'x - skipping README (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting README (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'README' &&
- X INTRODUCTION
- X ============
- X
- X The Perl 4.0 Reference Guide
- X
- X Revised: 92/02/19
- X
- The Perl Reference Guide is a typeset quick reference guide to
- Larry Wall's Perl program.
- X
- It contains a concise description of all Perl 4.0 statements,
- functions, variables and lots of other useful information.
- The Guide is based on Perl version 4.0, patchlevel 19.
- X
- The purpose of the Reference Guide is to aid in the use of Perl, to
- look up the syntax of specific functions, statements and the meaning
- of built-in variables. It is *NOT* a self-contained user guide -
- basic knowledge of the Perl language is required. It is *NOT* complete
- - some of the more obscure variants of perl constructs have been left
- out. But all functions and variables are mentioned in at least one
- way they can be used.
- X
- The Reference Guide is designed and created by Johan Vromans using the
- LaTex typesetting system. For best results, Tom Rockiki's dvips 5.47
- should be used to generate the PostScript output.
- Your mileage may vary when you use other ouput mechanisms.
- X
- A special formatting tool, written in Perl, makes it possible to
- reformat this PostScript output for reproduction in a number of
- formats. If you cannot run this tool, you do not need the
- information either.
- X
- The version number of the Reference Guide is coupled to the version of
- Perl, e.g. 4.019.2 means: the third release suitable for perl 4
- patchlevel 19.
- X
- INSTALLATION
- ============
- X
- X 1. Unload the distribution
- X
- X After unloading the distribution, you will have the following files:
- X
- X README - this file
- X ChangeLog - description of changes
- X Makefile - make file
- X parr - reformat and rearrange tool
- X Layout - description of the format
- X
- X The LeTeX kit includes
- X
- X refbase.tex - LaTeX source for the Reference Guide
- X refbase.sty - LaTeX style for the Reference Guide
- X
- X The PostScript kit includes
- X
- X refbase.ps - pre-generated PostScript base
- X
- X 2. Create the PostScript base file
- X
- X You can skip this step if you already have a pre-generated
- X PostScript base file.
- X This step requires the LaTeX typesetting system, and dvips version
- X 5.47 or later.
- X
- X - Use "make refbase-ps" (a dash, not a dot) to create a new
- X PostScript file from the LaTeX source. This file can be printed
- X normally.
- X
- X NOTE: dvips must be instructed to use a4 format paper ('-t a4')
- X even if you intend to print on a different format!
- X
- X 3. Create the RefGuide from the PostScript base
- X
- X As distributed, the Makefile is configured to generate output for
- X A4 (21 x 29.7 cm) paper format. Use "make PAPER= ..." to select US
- X Letter (8.5 x 11") format. Both formats should be printable on
- X all industry-standard PostScript printers.
- X
- X You can use "make" to generate a new PostScript file for one of
- X the following formats:
- X
- X - Use "make refguide.ps" to create a guide formatted in 10 pages
- X of 2-column text. It should be printed double-sided, stapled in
- X the middle, folded, and cut to size to have a 16-page 3.5 x 8"
- X booklet.
- X
- X - Use "make 2pass" to create a set of odd and even pages for
- X double sided printing. First print "guide-odd.ps". Then put the
- X paper back in the tray, and print either "guide-even1.ps" or
- X "guide-even2.ps", depending on the way your printer arranges
- X the printed paper.
- X "guide-even1.ps" is for printers with correct output stacking like
- X Apple LaserWriter II.
- X "guide-even2.ps" is for printers with reverse output stacking,
- X like old Apple LaserWriters.
- X In other words, after printing "guide-odd.ps", if the
- X text of the cover page is on top -- use "guide-even1.ps".
- X But if you're looking at the text of pages 9/10 -- use
- X "guide-even2.ps".
- X
- X "make" without arguments will default to refguide.ps .
- X
- X If your printout is not correct, feel free to change the figures in
- X subroutine 'twoup' of the 'parr' program. The file Layout
- X describes in more detail how the Guide should look like.
- X
- X On printers that support it, duplex printing is done.
- X
- Comments are welcome, send them to the author.
- X
- IF YOU DON'T HAVE A POSTSCRIPT PRINTER
- ======================================
- X
- Look in perlref.sty for comments with ">>>>" as a guide. The output
- will not be as perfect, but still very useful.
- X
- HISTORY
- =======
- X
- The first version of the Reference Guide --"reference card" is was
- called then-- appeared in 1989 with perl version 2.0. It was created
- using an Apple Macintosh and the RagTime DeskTop publishing tool.
- It was 9 pages, I believe. The PostScript output was extracted from
- the Mac and hacked for 'normal' use with the macps program.
- X
- With perl version 3 came the next version. A 15-page card format, and
- a 16-page reference guide. This time, the Guide was created using
- MicroSoft Word, still on Macintosh. Tools were supplied to manipulate
- the PostScript file to suit different printing formats.
- In a later version, the card format was abandoned.
- X
- Next came the Camel version, with perl 4.0. Lots of measurements had
- been taken to have the abundance of new functions fit on 16 pages.
- X
- After the book appeared, I decided to rework the Guide to use more
- pages, and different styles and fonts for clarity. I reworked the
- MS-Word version, to find out that the resultant PostScript file had
- increased from 90Kb to 180Kb!
- So I decided to start again, from scratch (well, almost) using the
- LaTeX typesetting system. The resultant PostScript file is now 80Kb,
- while it prints out almost identical to the 180Kb MS-Word version.
- X
- CREDITS
- =======
- X
- The Perl Reference Guide is copyrighted by the author. It may be
- reproduced, printed and distributed freely, as long as the original
- author gets the credits, and the copyright notice is not removed from
- the text. It may not be turned into a commercial product except with
- written permission of the author.
- X
- ---------------------------- author info -----------------------------
- X Johan Vromans
- X Multihouse Research, Doesburgweg 7, 2803 PL Gouda, the Netherlands
- X tel. +31 1820 62911, fax. +31 1820 62500
- X email: <jv@mh.nl>
- ----------------------------------------------------------------------
- X
- I like to thank everyone who has helped me (and encouraged me) to get
- the job done, and to get the results to you. Especially Tom
- Christiansen and JGreely (for "parr") And Larry Wall, of course,
- without whom I would have spent lots of time annoying myself.
- X
- X
- -- PostScript is a trademark of Adobe, I assume.
- @(#)@ README 4.2.4
- SHAR_EOF
- chmod 0444 README ||
- echo 'restore of README failed'
- Wc_c="`wc -c < 'README'`"
- test 6524 -eq "$Wc_c" ||
- echo 'README: original size 6524, current size' "$Wc_c"
- rm -f _shar_wnt_.tmp
- fi
- # ============= parr ==============
- if test -f 'parr' -a X"$1" != X"-c"; then
- echo 'x - skipping parr (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting parr (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'parr' &&
- #!/usr/bin/perl
- X
- # @(#)@ parr 4.2.3
- X
- # rearrange conforming PS code to print the pages in an arbitrary
- # order. The -o option takes a list of ranges, like this:
- # 1-5 1-10,11-20 11-,1-10
- # usage: parr [-a4] [-o list] [file]
- #
- # jgreely@cis.ohio-state.edu, 89/10/23
- # modified by jv@mh.nl, 91/078/15
- X
- $order='';
- $signFlag='';
- $signCount=0;
- $DEBUG=0;
- $TMPDIR='/usr/tmp';
- X
- while ($_ = $ARGV[0],/^-/) {
- X shift;
- X last if /^-\-$/;
- X /^-o(rder)?$/ && ($order = shift,next);
- X /^-a4$/ && ($a4flag++,next);
- X die "usage: parr [-a4] [-order list] [file]\n";
- }
- X
- $file = "$TMPDIR/p$$.header";
- @files = ($file);
- $sheet=0;
- open(FILE,">$file") || die "$file: $!\n";
- while (<>) {
- X #
- X # hack to use NeXT Preview: strip old '%%Pages:' lines
- X #
- X next if /^%%Pages:/;
- X if (/^%%Page:/) {
- X $sheet++;
- X $pagemap{$sheet} = $1 if /%%Page:\s+(\S+)\s+\S+/;
- X close(FILE);
- X $file = "$TMPDIR/p$$.$sheet";
- X push(@files,$file);
- X open(FILE,">$file") || die "$file: $!\n";
- X }
- X if (/^%%Trailer/) {
- X close(FILE);
- X $file = "$TMPDIR/p$$.trailer";
- X push(@files,$file);
- X open(FILE,">$file") || die "$file: $!\n";
- X }
- X if (/^TeXDict begin @(a4|letter)/) {
- X # Insert twoup before switching to TeXDict
- X &twoup;
- X $twoup++;
- X &double_sided;
- X print FILE "TeXDict begin @landscape\n";
- X next;
- X }
- X print FILE $_;
- }
- close(FILE);
- die "twoup insertion error\n" unless $twoup == 1;
- X
- @order = ();
- if ($order) {
- X foreach $range (split(/,/,$order)) {
- X ($start,$sep,$end) = split(/(-)/,$range);
- X $start = 1 unless $start;
- X $end = $sheet unless $end;
- X if ($sep) {
- X push(@order,$start..$end);
- X }else{
- X push(@order,$start);
- X }
- X }
- }elsif ($signFlag) {
- X if (! $signCount) {
- X $signCount = $sheet;
- X $signCount += (4 - $sheet % 4) if ($sheet % 4);
- X }else{
- X $signCount *=4;
- X }
- X for($base=0;$base<$sheet;$base+=$signCount) {
- X @tmp = ($signCount/2+$base);
- X push(@tmp,$tmp[0]+1,$tmp[0]+2,$tmp[0]-1);
- X while ($tmp[3] > $base) {
- X push(@order,@tmp);
- X @tmp = ($tmp[0]-2,$tmp[1]+2,$tmp[2]+2,$tmp[3]-2);
- X }
- X }
- }else{
- X @order = (1..$sheet);
- }
- X
- @tmp=@order;
- @order=();
- foreach $page (@tmp) {
- X push(@order,$page > $sheet ? "B" : $page);
- }
- X
- open(FILE,"$TMPDIR/p$$.header");
- $_ = <FILE>;
- print $_,"%%Pages: (atend)\n";
- print while <FILE>;
- close(FILE);
- X
- $count = 0;
- foreach $page (@order) {
- X $count++;
- X $num = "?";
- X $num = $pagemap{$page} if defined $pagemap{$page};
- X $num .= "/" . $pagemap{$order[$count]}
- X if defined $pagemap{$order[$count]};
- X print "%%Page: $num ", ($count+1)/2, "\n" if $count & 1;
- X print "%%OldPage: $page\n";
- X if ($page eq "B") {
- X print "showpage\n";
- X }else{
- X open(FILE,"$TMPDIR/p$$.$page");
- X while (<FILE>) {
- X print unless /^%%Page:/;
- X }
- X close(FILE);
- X }
- }
- open(FILE,"$TMPDIR/p$$.trailer");
- print while <FILE>;
- close(FILE);
- print "%%Pages: ", int(($count+1)/2), " 0\n";
- X
- unlink @files unless $DEBUG;
- exit(0);
- X
- sub twoup {
- $factor = 0.707106781187;
- X
- # Measurements are in 1/100 inch approx.
- if ( $a4flag) {
- X $topmargin = -57;
- X $leftmargin = 28;
- X $othermargin = 445; # do not change -- relative to $leftmargin
- }
- else {
- X $topmargin = -30;
- X $leftmargin = 0;
- X $othermargin = 445; # do not change -- relative to $leftmargin
- }
- $vsize = -1 - $factor;
- print FILE <<EOD;
- /isoddpage true def
- /orig-showpage /showpage load def
- /showpage {
- X isoddpage not { orig-showpage } if
- X /isoddpage isoddpage not store
- X } def
- X
- /bop-hook {
- X /vsize $vsize def
- X isoddpage
- X { $factor $factor scale $topmargin $leftmargin translate }
- X { 0 $othermargin translate}
- X ifelse
- X } def
- X
- /end-hook{ isoddpage not { orig-showpage } if } def
- EOD
- }
- X
- sub double_sided {
- X
- X # From: Tim Huckvale <tjh@praxis.co.uk>
- X #
- X # You may be interested in the following problem, and fix, that we
- X # found when attempting to print the reference card on our Hewlett
- X # Packard Laser-Jet IIISi printer.
- X #
- X # On this printer, refguide.ps prints double-sided with the
- X # reverse side of each sheet upside down. We fixed it with the
- X # following patch, applied before printing.
- X
- X # From: Johan Vromans <jv@mh.nl>
- X #
- X # Okay -- consider this an unsupported feature.
- X
- X print FILE <<EOD;
- statusdict /setduplexmode known { statusdict begin true setduplexmode end } if
- statusdict /settumble known { statusdict begin true settumble end } if
- EOD
- }
- X
- # Local Variables:
- # mode:(perl)
- # End:
- SHAR_EOF
- chmod 0444 parr ||
- echo 'restore of parr failed'
- Wc_c="`wc -c < 'parr'`"
- test 4291 -eq "$Wc_c" ||
- echo 'parr: original size 4291, current size' "$Wc_c"
- rm -f _shar_wnt_.tmp
- fi
- # ============= refbase.ps ==============
- if test -f 'refbase.ps' -a X"$1" != X"-c"; then
- echo 'x - skipping refbase.ps (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting refbase.ps (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'refbase.ps' &&
- %!PS-Adobe-2.0
- %%Creator: dvips 5.47 Copyright 1986-91 Radical Eye Software
- %%Title: refbase.dvi
- %%Pages: 21 1
- %%BoundingBox: 0 0 596 843
- %%DocumentFonts: Helvetica-BoldOblique Helvetica-Bold Times-Roman Courier-Bold
- %%+ Helvetica Times-Italic
- %%EndComments
- %%BeginProcSet: tex.pro
- /TeXDict 200 dict def TeXDict begin /N /def load def /B{bind def}N /S /exch
- load def /X{S N}B /TR /translate load N /isls false N /vsize 10 N /@rigin{
- isls{[0 1 -1 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale
- Resolution VResolution vsize neg mul TR matrix currentmatrix dup dup 4 get
- round 4 exch put dup dup 5 get round 5 exch put setmatrix}N /@letter{/vsize 10
- N}B /@landscape{/isls true N /vsize -1 N}B /@a4{/vsize 10.6929133858 N}B /@a3{
- /vsize 15.5531 N}B /@ledger{/vsize 16 N}B /@legal{/vsize 13 N}B /@manualfeed{
- statusdict /manualfeed true put}B /@copies{/#copies X}B /FMat[1 0 0 -1 0 0]N
- /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{/nn 8 dict N nn begin
- /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N string /base X array
- /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N end dup{/foo setfont}2
- array copy cvx N load 0 nn put /ctr 0 N[}B /df{/sf 1 N /fntrx FMat N df-tail}
- B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0]N df-tail}B /E{pop nn dup definefont
- setfont}B /ch-width{ch-data dup length 5 sub get}B /ch-height{ch-data dup
- length 4 sub get}B /ch-xoff{128 ch-data dup length 3 sub get sub}B /ch-yoff{
- ch-data dup length 2 sub get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B
- /ch-image{ch-data dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0
- N /rw 0 N /rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S
- dup /base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx 0
- ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff setcachedevice
- ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff .1 add]{ch-image}
- imagemask restore}B /D{/cc X dup type /stringtype ne{]}if nn /base get cc ctr
- put nn /BitMaps get S ctr S sf 1 ne{dup dup length 1 sub dup 2 index S get sf
- div put}if put /ctr ctr 1 add N}B /I{cc 1 add D}B /bop{userdict /bop-hook
- known{bop-hook}if /SI save N @rigin 0 0 moveto}N /eop{clear SI restore
- showpage userdict /eop-hook known{eop-hook}if}N /@start{userdict /start-hook
- known{start-hook}if /VResolution X /Resolution X 1000 div /DVImag X /IE 256
- array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for}N /p /show load N
- /RMat[1 0 0 -1 0 0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X
- /rulex X V}B /V statusdict begin /product where{pop product dup length 7 ge{0
- 7 getinterval(Display)eq}{pop false}ifelse}{false}ifelse end{{gsave TR -.1 -.1
- TR 1 1 scale rulex ruley false RMat{BDot}imagemask grestore}}{{gsave TR -.1
- -.1 TR rulex ruley scale 1 1 false RMat{BDot}imagemask grestore}}ifelse B /a{
- moveto}B /delta 0 N /tail{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{
- S p tail}B /c{-4 M}B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B
- /j{3 M}B /k{4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w
- }B /q{p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p
- a}B /bos{/SS save N}B /eos{clear SS restore}B end
- %%EndProcSet
- %%BeginProcSet: texps.pro
- TeXDict begin /rf{655360 div mul Resolution mul 7227 div /PixPerEm X findfont
- dup length 1 add dict /nn X{1 index /FID ne{nn 3 1 roll put}{pop pop}ifelse}
- forall 256 dict begin nn /Encoding get 0 1 255{2 copy get 3 index 2 index get
- 1000 mul PixPerEm div def pop}for pop pop nn /Metrics currentdict put end
- /fontname X /nn dup nn definefont[PixPerEm 0 0 PixPerEm neg 0 0]makefont N
- fontname{/foo setfont}2 array copy cvx N fontname load 0 nn put}N
- /ObliqueSlant{dup sin S cos div neg}B /SlantFont{/foo X[1 0 foo 1 0 0]
- TransFont}N /ExtendFont{/foo X 3 2 roll[S{foo div}forall]3 1 roll[foo 0 0 1 0
- 0]TransFont}N /TransFont{S findfont S makefont dup length dict /nn X{1 index
- /FID ne{nn 3 1 roll put}{pop pop}ifelse}forall dup nn definefont pop}N end
- %%EndProcSet
- TeXDict begin 1000 300 300 @start /Fa [ 0 0 0 0 0 0 0 0 0 0
- 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 25 25 25 25 25
- 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
- 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
- 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
- 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
- 25 25 25 25 25 25 25 25 25 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 25 25 25 25 25 25 25
- 25 25 25 25 25 25 0 0 0 25 25 25 25 0 25 25 25 25 25 25 25
- 0 0 25 0 25 25 25 25 25 25 25 25 0 25 25 0 25 25 25 25 0 0
- 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 25 0 0 0 0 25 25 0 25 0 0 0
- 0 0 0 0 0 0 25 0 0 25 25 0 25 0 0 0 0 ] /Courier-Bold 1000
- 655360 rf /Fb 1 26 df<07FFFE001FFFFF003FFFFF007FFFFE0070630000C0C3000080C70000
- 00C6000001C600000186000003860000038F0000038F0000070F0000070F00000F0F00000F0780
- 001E0780001E0780000C03000019147F931A>25 D E /Fc [ 0 0 0 0 0
- 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 15
- 19 23 23 38 36 15 15 15 23 31 11 15 11 13 23 23 23 23 23 23
- 23 23 23 23 15 15 31 31 31 23 42 28 28 30 33 28 28 33 33 15
- 20 30 25 38 30 33 28 33 28 23 25 33 28 38 28 25 25 18 13 18
- 19 23 15 23 23 20 23 20 13 23 23 13 13 20 13 33 23 23 23 23
- 18 18 13 23 20 30 20 20 18 18 13 18 25 0 0 0 0 0 0 0 0 0 0
- 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 18 23 23 8
- 23 23 23 23 10 25 23 15 15 23 23 0 23 23 23 11 0 24 16 15 25
- 25 23 41 46 0 23 0 15 15 15 15 15 15 15 15 0 15 15 0 15 15
- 15 41 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 41 0 13 0 0 0 0 25 33
- 43 14 0 0 0 0 0 30 0 0 0 13 0 0 13 23 30 23 0 0 0 0 ] /Times-Italic
- 1000 720896 rf /Fd [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- 0 0 0 0 0 0 0 0 0 0 0 0 0 12 14 20 23 23 37 30 12 14 14 16
- 24 12 14 12 12 23 23 23 23 23 23 23 23 23 23 14 14 24 24 24
- 25 40 30 30 30 30 28 25 32 30 12 23 30 25 35 30 32 28 32 30
- 28 25 30 28 39 28 28 25 14 12 14 24 23 12 23 25 23 25 23 14
- 25 25 12 12 23 12 37 25 25 25 25 16 23 14 25 23 32 23 23 21
- 16 12 16 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- 0 0 0 0 0 0 0 0 0 0 14 23 23 7 23 23 23 23 10 21 23 14 14 25
- 25 0 23 23 23 12 0 23 15 12 21 21 23 42 42 0 25 0 14 14 14
- 14 14 14 14 14 0 14 14 0 14 14 14 42 0 0 0 0 0 0 0 0 0 0 0
- 0 0 0 0 0 42 0 15 0 0 0 0 25 32 42 15 0 0 0 0 0 37 0 0 0 12
- 0 0 12 25 39 25 0 0 0 0 ] /Helvetica-Bold 1000 655360 rf /Fe
- 2 122 df<0003FF0000000FFFC000003E01F00000F8007C0001E0001E00038000070007000003
- 800E000001C00C000000C01C000000E03800000070300000003030000000307000000038600000
- 00186000000018E00000001CC00000000CC00000000CC00000000CC00000000CC00000000CC000
- 00000CC00000000CC00000000CC00000000CE00000001C60000000186000000018700000003830
- 00000030300000003038000000701C000000E00C000000C00E000001C007000003800380000700
- 01E0001E0000F8007C00003E01F000000FFFC0000003FF0000262B7DA02D>13
- D<03000780078007800780078007800300030003007B78FFFCFFFC7B7803000300078007800780
- 078007800780078007800780078007800780078007800780078007800780078003000300030003
- 000300030003000E2A7D9F15>121 D E /Ff [ 0 0 0 0 0 0 0 0 0 0
- 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 12 15 23 23
- 37 28 9 14 14 16 24 12 14 12 12 23 23 23 23 23 23 23 23 23
- 23 12 12 24 24 24 23 42 28 28 30 30 28 25 32 30 12 21 28 23
- 35 30 32 28 32 30 28 25 30 28 39 28 28 25 12 12 12 19 23 9
- 23 23 21 23 23 12 23 23 9 9 21 9 35 23 23 23 23 14 21 12 23
- 21 30 21 21 21 14 11 14 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 14 23 23 7 23 23 23 23
- 8 14 23 14 14 21 21 0 23 23 23 12 0 22 15 9 14 14 23 42 42
- 0 25 0 14 14 14 14 14 14 14 14 0 14 14 0 14 14 14 42 0 0 0
- 0 0 0 0 0 0 0 0 0 0 0 0 0 42 0 15 0 0 0 0 23 32 42 15 0 0 0
- 0 0 37 0 0 0 12 0 0 9 25 39 25 0 0 0 0 ] /Helvetica 1000 655360
- rf /Fg [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- 0 0 0 0 0 0 0 14 17 24 28 28 44 36 14 17 17 19 29 14 17 14
- 14 28 28 28 28 28 28 28 28 28 28 17 17 29 29 29 30 49 36 36
- 36 36 33 30 39 36 14 28 36 30 41 36 39 33 39 36 33 30 36 33
- 47 33 33 30 17 14 17 29 28 14 28 30 28 30 28 17 30 30 14 14
- 28 14 44 30 30 30 30 19 28 17 30 28 39 28 28 25 19 14 19 29
- 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- 0 0 0 0 17 28 28 8 28 28 28 28 12 25 28 17 17 30 30 0 28 28
- 28 14 0 28 17 14 25 25 28 50 50 0 30 0 17 17 17 17 17 17 17
- 17 0 17 17 0 17 17 17 50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50
- 0 18 0 0 0 0 30 39 50 18 0 0 0 0 0 44 0 0 0 14 0 0 14 30 47
- 30 0 0 0 0 ] /Helvetica-BoldOblique 1000 786432 rf /Fh [ 0
- 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- 0 10 14 17 21 21 35 32 14 14 14 21 23 10 14 10 12 21 21 21
- 21 21 21 21 21 21 21 12 12 23 23 23 18 38 30 28 28 30 25 23
- 30 30 14 16 30 25 37 30 30 23 30 28 23 25 30 30 39 30 30 25
- 14 12 14 19 21 14 18 21 18 21 18 14 21 21 12 12 21 12 32 21
- 21 21 21 14 16 12 21 21 30 21 21 18 20 8 20 22 0 0 0 0 0 0
- 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 14
- 21 21 7 21 21 21 21 7 18 21 14 14 23 23 0 21 21 21 10 0 19
- 15 14 18 18 21 42 42 0 18 0 14 14 14 14 14 14 14 14 0 14 14
- 0 14 14 14 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 37 0 11 0 0 0
- 0 25 30 37 13 0 0 0 0 0 28 0 0 0 12 0 0 12 21 30 21 0 0 0 0
- ] /Times-Roman 1000 655360 rf /Fi [ 0 0 0 0 0 0 0 0 0 0 0 0
- 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 27 27 27 27 27 27 27
- 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27
- 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27
- 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27
- 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27
- 27 27 27 27 27 27 27 27 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 27 27 27 27 27 27 27 27 27
- 27 27 27 27 0 0 0 27 27 27 27 0 27 27 27 27 27 27 27 0 0 27
- 0 27 27 27 27 27 27 27 27 0 27 27 0 27 27 27 27 0 0 0 0 0 0
- 0 0 0 0 0 0 0 0 0 0 0 0 27 0 0 0 0 27 27 0 27 0 0 0 0 0 0 0
- 0 0 27 0 0 27 27 0 27 0 0 0 0 ] /Courier-Bold 1000 720896 rf
- /Fj [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- 0 0 0 0 0 11 15 19 23 23 38 36 15 15 15 23 26 11 15 11 13 23
- 23 23 23 23 23 23 23 23 23 13 13 26 26 26 20 42 33 30 30 33
- 28 25 33 33 15 18 33 28 41 33 33 25 33 30 25 28 33 33 43 33
- 33 28 15 13 15 21 23 15 20 23 20 23 20 15 23 23 13 13 23 13
- 36 23 23 23 23 15 18 13 23 23 33 23 23 20 22 9 22 25 0 0 0
- 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- 0 15 23 23 8 23 23 23 23 8 20 23 15 15 25 25 0 23 23 23 11
- 0 21 16 15 20 20 23 46 46 0 20 0 15 15 15 15 15 15 15 15 0
- 15 15 0 15 15 15 46 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 41 0 13
- 0 0 0 0 28 33 41 14 0 0 0 0 0 30 0 0 0 13 0 0 13 23 33 23 0
- 0 0 0 ] /Times-Roman 1000 720896 rf /Fk [ 0 0 0 0 0 0 0 0 0
- 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 13 15 22 25 25
- 41 33 13 15 15 18 27 13 15 13 13 25 25 25 25 25 25 25 25 25
- 25 15 15 27 27 27 28 45 33 33 33 33 30 28 36 33 13 25 33 28
- 38 33 36 30 36 33 30 28 33 30 43 30 30 28 15 13 15 27 25 13
- 25 28 25 28 25 15 28 28 13 13 25 13 41 28 28 28 28 18 25 15
- 28 25 36 25 25 23 18 13 18 27 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 25 25 8 25 25 25 25
- 11 23 25 15 15 28 28 0 25 25 25 13 0 25 16 13 23 23 25 46 46
- 0 28 0 15 15 15 15 15 15 15 15 0 15 15 0 15 15 15 46 0 0 0
- 0 0 0 0 0 0 0 0 0 0 0 0 0 46 0 17 0 0 0 0 28 36 46 17 0 0 0
- 0 0 41 0 0 0 13 0 0 13 28 43 28 0 0 0 0 ] /Helvetica-Bold 1000
- 720896 rf /Fl [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- 0 0 0 0 0 0 0 0 0 0 20 23 33 39 39 63 51 20 23 23 27 41 20
- 23 20 20 39 39 39 39 39 39 39 39 39 39 23 23 41 41 41 43 69
- 51 51 51 51 47 43 55 51 20 39 51 43 59 51 55 47 55 51 47 43
- 51 47 67 47 47 43 23 20 23 41 39 20 39 43 39 43 39 23 43 43
- 20 20 39 20 63 43 43 43 43 27 39 23 43 39 55 39 39 35 27 20
- 27 41 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- 0 0 0 0 0 0 0 23 39 39 12 39 39 39 39 17 35 39 23 23 43 43
- 0 39 39 39 20 0 39 25 20 35 35 39 71 71 0 43 0 23 23 23 23
- 23 23 23 23 0 23 23 0 23 23 23 71 0 0 0 0 0 0 0 0 0 0 0 0 0
- 0 0 0 71 0 26 0 0 0 0 43 55 71 26 0 0 0 0 0 63 0 0 0 20 0 0
- 20 43 67 43 0 0 0 0 ] /Helvetica-BoldOblique 1000 1114112 rf
- end
- %%EndProlog
- %%BeginSetup
- %%Feature: *Resolution 300
- TeXDict begin @a4
- %%EndSetup
- %%Page: 0 1
- bop eop
- %%Page: 0 2
- bop 591 341 a Fl(Perl)20 b(Reference)h(Guide)p 591 362 1264 2 v 591 462 a Fk
- (for)12 b(Perl)h(version)g(4.019)591 645 y
- Fj(Perl)f(program)f(designed)f(and)i(created)g(by)591 701 y
- (Larry)f(W)l(all)h Fi(<)p Fj(lwall@netlabs.com)p Fi(>)591 884 y
- Fj(Reference)h(guide)e(designed)g(and)g(created)h(by)591 941 y
- (Johan)e(V)m(romans)i Fi(<)p Fj(jv@mh.nl)p Fi(>)591 1185 y
- Fl(Contents)p 591 1206 V 639 1306 a Fj(1.)21 b(Command)11 b(line)g
- (options)639 1363 y
- (2.)21 b(Literals)639 1419 y
- (3.)g(V)-5 b(ariables)639 1476 y
- (4.)21 b(Statements)639 1532 y
- (5.)g(Flow)12 b(control)639 1589 y
- (6.)21 b(Operators)639 1645 y
- (7.)g(File)12 b(test)f(operators)639 1701 y
- (8.)21 b(Arithmetic)11 b(functions)639 1758 y
- (9.)21 b(Conversion)11 b(functions)616 1814 y
- (10.)21 b(Structure)12 b(conversion)616 1871 y
- (11.)21 b(String)11 b(functions)616 1927 y
- (12.)21 b(Array)12 b(and)g(list)e(functions)616 1984 y
- (13.)21 b(File)12 b(operations)616 2040 y
- (14.)21 b(Directory)12 b(reading)f(routines)616 2097 y
- (15.)21 b(Input)11 b(/)g(Output)616 2153 y
- (16.)21 b(Search)13 b(and)e(replace)i(functions)616 2210 y
- (17.)21 b(System)11 b(interaction)616 2266 y
- (18.)21 b(Networking)616 2323 y
- (19.)g(SystemV)11 b(IPC)616 2379 y
- (20.)21 b(Miscellaneous)616 2435 y
- (21.)g(Formats)616 2492 y
- (22.)g(Info)12 b(from)f(system)f(\256les)616 2548 y
- (23.)21 b(Regular)12 b(expressions)616 2605 y
- (24.)21 b(Special)12 b(variables)616 2661 y
- (25.)21 b(Special)12 b(arrays)616 2718 y
- (26.)21 b(The)12 b(perl)f(debugger)591 2901 y
- Fh(Rev)m(.)f(4.019.1)p eop
- %%Page: 1 3
- bop 354 -101 a Fg(Perl)14 b(Reference)f(Guide)p 354 -89 1512 3 v 354 0 a Fl
- (Conventions)p 354 21 1512 2 v 354 121 a Fi(fixed)102 b Fj(denotes)10 b
- (literal)h(text.)354 186 y
- Ff(THIS)142 b Fj(means)11 b(variable)g(text,)g(i.e.)i(things)d(you)h(must)f
- (\256ll)h(in.)354 251 y
- Ff(THIS)p Fe(y)121 b Fj(means)11 b(that)g Ff(THIS)g Fj(will)f(default)h
- (to)g Fi($_)h Fj(if)g(omitted.)354 315 y
- Fd(word)139 b Fj(is)10 b(a)i(keyword,)g(i.e.)g(a)g(word)f(with)f(a)i(special)f
- (meaning.)p 354 337 112 2 v 354 393 2 56 v 368 380 a Ff
- (RET)p 464 393 V 354 395 112 2 v 140 w Fj(denotes)f(pressing)h(a)h(keyboard)f
- (key)m(.)354 445 y
- ([.)d(.)g(.)h(])149 b(denotes)10 b(an)i(optional)e(part.)354 510 y
- (\(.)e(.)g(.)h(\)*)126 b(means)11 b(that)g(the)g(parentheses)g(may)g(be)h
- (omitted.)355 635 y
- Fl(1.)19 b(Command)h(line)f(options)p 355 656 1512 2 v 354 757 a Fi(-a)64 b Fj
- (turns)11 b(on)g(autosplit)f(mode)h(when)g(used)g(with)g Fi(-n)h Fj(or)g Fi
- (-p)p Fj(.)g(Splits)f(to)g Fi(@F)p Fj(.)354 821 y
- Fi(-c)64 b Fj(checks)12 b(syntax)f(but)g(does)g(not)f(execute.)354 886 y
- Fi(-d)64 b Fj(runs)11 b(the)g(script)f(under)h(the)g(debugger)m(.)h(Use)f Fi
- (-de)28 b(0)12 b Fj(to)e(start)h(the)g(debugger)g(without)472 943 y
- (a)h(script.)354 1007 y
- Fi(-D)h Ff(NUMBER)472 1064 y
- Fj(sets)e(debugging)g(\257ags.)354 1129 y
- Fi(-e)i Ff(COMMANDLINE)472 1185 y
- Fj(may)e(be)h(used)f(to)g(enter)h(one)f(line)g(of)g(script.)h(Multiple)d Fi
- (-e)k Fj(commands)d(may)h(be)472 1241 y
- (given)g(to)g(build)g(up)g(a)g(multi-line)f(script.)354 1306 y
- Fi(-i)j Ff(EXT)472 1363 y
- Fj(\256les)f(processed)f(by)h(the)f Fi(<>)h Fj(construct)f(are)h(to)f(be)g
- (edited)g(in-place.)354 1427 y
- Fi(-I)i Ff(DIR)472 1484 y
- Fj(with)e Fi(-P)p Fj(:)h(tells)e(the)i(C)g(preprocessor)f(where)h(to)f(look)g
- (for)g(include)g(\256les.)h(The)472 1540 y
- (directory)g(is)f(prepended)g(to)g Fi(@INC)p Fj(.)354 1605 y
- Fi(-L)i Ff(OCTNUM)472 1662 y
- Fj(enables)f(automatic)e(line)h(ending)g(processing.)354 1726 y
- Fi(-n)64 b Fj(assumes)11 b(an)h(input)e(loop)g(around)i(your)f(script.)g
- (Lines)g(are)h(not)f(printed.)354 1791 y
- Fi(-p)64 b Fj(assumes)11 b(an)h(input)e(loop)g(around)i(your)f(script.)g
- (Lines)g(are)h(printed.)354 1856 y
- Fi(-P)64 b Fj(runs)11 b(the)h(C)g(preprocessor)f(on)g(the)h(script)e(before)i
- (compilation)e(by)h(perl.)354 1921 y
- Fi(-s)64 b Fj(interprets)11 b(\252)p Fi(-xxx)p Fj(\272)j(on)d(the)g(command)g
- (line)g(as)g(switches)g(and)g(sets)g(the)472 1977 y
- (corresponding)g(variables)g Fi($)q(xxx)h Fj(in)f(the)h(script.)354 2042 y
- Fi(-S)64 b Fj(uses)11 b(the)h Fi(PATH)h Fj(environment)d(variable)h(to)g
- (search)h(for)g(the)f(script.)354 2107 y
- Fi(-u)64 b Fj(dumps)11 b(core)h(after)g(compiling)d(the)j(script.)f(T)m(o)g
- (be)g(used)g(with)g(the)g Fc(undump)g Fj(program)472 2163 y
- (\(where)i(available\).)354 2228 y
- Fi(-U)64 b Fj(allows)11 b(perl)h(to)e(do)i(unsafe)f(operations.)354 2293 y
- Fi(-v)64 b Fj(prints)11 b(the)g(version)g(and)g(patchlevel)g(of)h(your)f
- (perl)g(executable.)354 2357 y
- Fi(-w)64 b Fj(prints)11 b(warnings)g(about)g(possible)f(spelling)g(errors)i
- (and)f(other)g(error)o(-prone)472 2414 y
- (constructs)g(in)g(the)g(script.)354 2479 y
- Fi(-x)64 b Fj(extracts)12 b(perl)f(program)g(from)h(input)e(stream.)354 2543 y
- Fi(-0)j Ff(V)m(AL)472 2600 y
- Fj(\(that')m(s)f(the)f(number)g(zero\))h(designates)f(an)h(initial)e(value)h
- (for)g(the)h(record)g(terminator)472 2656 y
- Fi($)q(/)p Fj(.)g(See)g(also)f Fi(-L)p Fj(.)p 354 3018 1512 3 v 354 3065 a Fg
- (1)p eop
- %%Page: 2 4
- bop 1362 -101 a Fg(Perl)14 b(Reference)f(Guide)p 354 -89 1512 3 v 355 -2 a Fl
- (2.)19 b(Literals)p 355 19 1512 2 v 354 119 a Fj(Numeric:)11 b Fi(123)56 b
- (123.4)h(5E-10)g(0xff)13 b Fj(\(hex\))55 b Fi(0377)13 b Fj(\(octal\).)354 184 y
- (String:)e Fi('abc')i Fj(literal)e(string,)g(no)g(variable)h(interpolation)e
- (nor)h(escape)h(characters.)591 241 y
- (Also:)e Fi(q/abc/)p Fj(.)591 297 y
- (\(Almost)g(any)h(pair)g(of)h(delimiters)e(can)i(be)f(used)g(instead)g(of)h Fi
- (/.../)p Fj(.\))472 362 y
- Fi("abc")i Fj(V)-5 b(ariables)11 b(are)h(interpolated)f(and)g(escape)h
- (sequences)g(are)g(processed.)591 418 y
- (Also:)e Fi(qq/abc/)p Fj(.)591 475 y
- (Escape)h(sequences:)h Fi(\\t)g Fj(\(T)m(ab\),)g Fi(\\n)g Fj(\(Newline\),)g Fi
- (\\r)g Fj(\(Return\),)h Fi(\\f)591 531 y
- Fj(\(Formfeed\),)f Fi(\\b)h Fj(\(Backspace\),)g Fi(\\a)f Fj(\(Alarm\),)g Fi
- (\\e)g Fj(\(Escape\),)h Fi(\\033)p Fj(\(octal\),)591 588 y
- Fi(\\x1b)p Fj(\(hex\),)g Fi(\\c[)g Fj(\(control\).)591 644 y
- Fi(\\l)f Fj(and)f Fi(\\u)h Fj(lowcase/upcase)g(the)f(following)f
- (character;)591 701 y
- Fi(\\L)i Fj(and)f Fi(\\U)h Fj(lowcase/upcase)g(until)e(a)i Fi(\\E)g Fj(is)f
- (encountered.)472 765 y
- Fi(`)p Ff(COMMAND)p Fi(`)h Fj(evaluates)f(to)g(the)g(output)f(of)i(the)f Ff
- (COMMAND)p Fj(.)591 822 y
- (Also:)f Fi(qx/)p Ff(COMMAND)p Fi(/)p Fj(.)354 887 y
- (Array:)i Fi(\(1,2,3\))p Fj(.)j Fi(\(\))d Fj(is)f(an)g(empty)g(array)m
- (.)472 943 y
- (Also:)g Fi(\($a,$b,@re)q(st)q(\))30 b(=)e(\(1,2,...\))q(;)472 999 y
- (\(1..4\))14 b Fj(is)d(the)g(same)h(as)f Fi(\(1,2,3,4\))q Fj(.)j(Likewise)d Fi
- (\('abc'..')q(ad)q(e'\))354 1064 y
- Fj(Associative)g(array:)h Fi(\()p Ff(KEY1)p Fi(,)p Ff(V)m(AL1)p Fi(,)p Ff
- (KEY2)p Fi(,)p Ff(V)m(AL2)p Fi(,...\))354 1129 y
- Fj(Filehandles:)472 1185 y
- (Pre-de\256ned:)h Fi(<STDIN>)p Fj(,)i Fi(<STDOUT>)p Fj(,)g Fi(<STDERR>)p Fj
- (,)g Fi(<ARGV>)p Fj(,)f Fi(<DATA>)p Fj(;)472 1242 y
- (User)o(-speci\256ed:)e Fi(<)p Ff(HANDLE)p Fi(>)p Fj(,)g Fi(<$)p Ff(V)m
- (AR)p Fi(>)p Fj(.)472 1298 y
- Fi(<>)h Fj(is)e(the)g(input)f(stream)h(formed)g(by)h(the)f(\256les)g
- (speci\256ed)h(in)f Fi(@ARGV)p Fj(,)j(or)d(standard)472 1355 y
- (input)g(if)g(no)g(ar)o(guments)g(are)h(supplied.)354 1420 y
- (Globs:)f Fi(<)p Ff(P)m(A)m(TTERN)p Fi(>)g Fj(evaluates)h(to)f(all)g
- (\256lenames)g(according)h(to)f(the)g(pattern.)472 1476 y
- (Use)h Fi(<${)p Ff(V)m(AR)p Fi(}>)h Fj(to)d(glob)h(from)g(a)h
- (variable.)354 1541 y
- (Here-Is:)g Fi(<<)p Ff(IDENTIFIER)472 1597 y
- Fc(See)g(the)f(manual)g(for)g(details.)354 1662 y
- Fj(Special)h(tokens:)472 1718 y
- Fi(_)c(_)q(FILE_)h(_)q Fj(:)i(\256lename;)g Fi(_)d(_)q(LINE_)h(_)q Fj(:)i
- (line)g(number)m(.)472 1775 y
- Fi(_)d(_)q(END_)h(_)p Fj(:)j(end)f(of)g(program;)g(remaining)g(lines)f(can)i
- (be)g(read)g(using)e Fi(<)p Ff(DA)m(T)m(A)p Fi(>)p Fj(.)355 1904 y
- Fl(3.)19 b(V)m(ariables)p 355 1925 V 354 2026 a Fi($)q(var)269 b Fj(a)12 b
- (simple)e(scalar)i(variable)354 2090 y
- Fi($)q(var[28])161 b Fj(29th)11 b(element)g(of)g(array)i Fi(@var)g Fj
- (\(the)e Fi([])h Fj(are)g(part)g(of)f(it\))354 2155 y
- Fi($)q(var{)q('Feb'})79 b Fj(one)12 b(value)f(from)g(associative)g(array)h Fi
- (\045var)354 2220 y
- ($)q(#var)242 b Fj(last)11 b(index)g(of)g(array)i Fi(@var)354 2285 y
- (@var)270 b Fj(the)11 b(entire)h(array;)732 2341 y
- (in)f(scalar)h(context:)f(the)g(number)g(of)g(elements)g(in)g(the)g
- (array)354 2406 y
- Fi(@var[3,4)q(,5])80 b Fj(a)12 b(slice)f(of)h(the)f(array)h Fi(@var)354 2471 y
- (@var{)r('a','b'})25 b Fj(a)12 b(slice)f(of)h Fi(\045var)p Fj(;)g(same)f
- (as)h Fi(\($var{'a')q(},$)q(va)q(r{')q(b'})q(\))354 2535 y
- (\045)q(var)269 b Fj(the)11 b(entire)h(associative)f(array;)732 2592 y
- (in)g(scalar)h(context:)f(TRUE)g(if)h(the)f(array)h(has)f(elements)354 2657 y
- Fi($)q(var{)q('a',1,...)q(})24 b Fj(emulates)11 b(a)g(multi-dimensional)e
- (array)354 2721 y
- Fi(\('a'..'z)q('\)[)q(4,7)q(,9)q(])732 2778 y
- Fj(a)j(slice)f(of)h(an)f(array)h(literal)354 2843 y
- Fi(*)p Ff(NAME)230 b Fj(refers)13 b(to)e(all)g(objects)f(represented)i(by)f Ff
- (NAME)p Fj(.)g(\252)p Fi(*name1)30 b(=)732 2899 y
- (*name2)p Fj(\272)14 b(makes)d Fi(name1)j Fj(a)e(reference)h(to)e Fi
- (name2)p Fj(.)p 354 3018 1512 3 v 1838 3065 a Fg(2)p eop
- %%Page: 3 5
- bop 354 -101 a Fg(Perl)14 b(Reference)f(Guide)p 354 -89 1512 3 v 355 -2 a Fl
- (4.)19 b(Statements)p 355 19 1512 2 v 354 119 a Fj(Every)12 b(statement)e(is)h
- (an)h(expression,)f(optionally)e(followed)i(by)g(a)h(modi\256er)n(,)g
- (and)354 176 y
- (terminated)f(by)g(a)h(semi-colon.)354 241 y
- (Execution)f(of)g(expressions)g(can)h(depend)f(on)g(other)g(expressions)g
- (using)f(one)h(of)h(the)354 297 y
- (modi\256ers)f Fd(if)p Fj(,)g Fd(unless)p Fj(,)i Fd(while)e Fj(or)g Fd
- (until)p Fj(,)h(e.g.:)400 362 y
- Ff(EXPR1)f Fd(if)f Ff(EXPR2)h Fi(;)400 418 y
- Ff(EXPR1)g Fd(until)g Ff(EXPR2)f Fi(;)354 483 y
- Fj(Also,)h(by)g(using)g(one)g(of)h(the)f(logical)g(operators)g Fi(||)q Fj
- (,)h Fi(&&)g Fj(or)f Fi(?)28 b(:)p Fj(,)12 b(e.g.:)400 548 y
- Ff(EXPR1)f Fi(||)h Ff(EXPR2)e Fi(;)400 604 y
- Ff(EXPR1)h Fi(?)g Ff(EXPR2)g Fi(:)h Ff(EXPR3)e Fi(;)354 669 y
- Fj(Statements)h(can)h(be)f(combined)g(to)g(form)g(a)h Ff(BLOCK)f Fj(when)g
- (enclosed)g(in)g Fi({})p Fj(.)354 734 y
- (Compound)g(statements)f(may)h(be)g(used)h(to)f(control)f(\257ow:)400 799 y
- Fd(if)h Fi(\()p Ff(EXPR)p Fi(\))g Ff(BLOCK)g Fj([)h([)f Fd(elsif)g Fi(\()p Ff
- (EXPR)p Fi(\))g Ff(BLOCK)g(...)f Fj(])i Fd(else)f Ff(BLOCK)g Fj(])400 855 y
- Fd(unless)h Fi(\()p Ff(EXPR)p Fi(\))f Ff(BLOCK)g Fj([)h Fd(else)f Ff(BLOCK)g Fj
- (])400 911 y
- ([)h Ff(LABEL)p Fd(:)e Fj(])i Fd(while)f Fi(\()p Ff(EXPR)p Fi(\))g Ff
- (BLOCK)g Fj([)h Fd(continue)g Ff(BLOCK)f Fj(])400 968 y
- ([)h Ff(LABEL)p Fd(:)e Fj(])i Fd(until)f Fi(\()p Ff(EXPR)p Fi(\))g Ff
- (BLOCK)g Fj([)h Fd(continue)g Ff(BLOCK)f Fj(])400 1024 y
- ([)h Ff(LABEL)p Fd(:)e Fj(])i Fd(for)f Fi(\()p Ff(EXPR)p Fi(;)h Ff(EXPR)p Fi
- (;)f Ff(EXPR)p Fi(\))f Ff(BLOCK)400 1081 y
- Fj([)i Ff(LABEL)p Fd(:)e Fj(])i Fd(foreach)g Ff(V)m(AR)p Fe(y)o Fi(\()p Ff
- (ARRA)m(Y)p Fi(\))f Ff(BLOCK)400 1137 y
- Fj([)h Ff(LABEL)p Fd(:)e Fj(])i Ff(BLOCK)f Fj([)g Fd(continue)24 b Ff
- (BLOCK)12 b Fj(])354 1202 y
- (Special)g(forms)f(are:)400 1267 y
- Fd(do)h Ff(BLOCK)f Fd(while)h Ff(EXPR)e Fi(;)400 1323 y
- Fd(do)i Ff(BLOCK)f Fd(until)g Ff(EXPR)g Fi(;)354 1380 y
- Fj(which)g(are)i(guaranteed)e(to)g(perform)h Ff(BLOCK)f Fj(once)g(before)h
- (testing)f Ff(EXPR)p Fj(.)355 1503 y
- Fl(5.)19 b(Flow)h(control)p 355 1524 V 354 1624 a Fd(do)12 b Ff
- (BLOCK)472 1681 y
- Fj(Returns)g(the)f(value)g(of)h(the)f(last)g(command)f(in)h(the)h(sequence)f
- (of)h(commands)472 1737 y
- (indicated)f(by)g Ff(BLOCK)p Fj(.)h Fd(next)p Fj(,)g Fd(last)f Fj(and)g Fd
- (redo)i Fj(cannot)e(be)g(used)h(here.)354 1802 y
- Fd(do)g Ff(SUBROUTINE)p Fd(\(LIST\))472 1859 y
- Fj(Executes)g(a)f Ff(SUBROUTINE)g Fj(declared)h(by)f(a)h Fd(sub)g Fj
- (declaration,)g(and)f(returns)g(the)472 1915 y
- (value)h(of)f(the)g(last)g(expression)g(evaluated)g(in)g Ff(SUBROUTINE)g Fj
- (.)472 1971 y
- (Preferred)j(form)d(is:)f Fi(&)p Ff(SUBROUTINE)h Fj(.)354 2036 y
- Fd(do)h Ff(FILENAME)472 2093 y
- Fj(Executes)g(the)f(contents)g(of)g Ff(FILENAME)f Fj(as)h(a)h(perl)g(script.)f
- (Errors)g(are)i(returned)e(in)472 2149 y
- Fi($@)p Fj(.)472 2206 y
- (Preferred)j(form)d(is:)f Fd(require)j Ff(FILENAME)d Fj(.)354 2270 y
- Fd(goto)j Ff(LABEL)472 2327 y
- Fj(Continue)e(execution)g(at)h(the)f(speci\256ed)h(label.)354 2392 y
- Fd(last)f Fj([)p Ff(LABEL)p Fj(])472 2448 y
- (Immediately)g(exits)f(the)i(loop)e(in)h(question.)g(Skips)g(continue)f
- (block.)354 2513 y
- Fd(next)i Fj([)p Ff(LABEL)p Fj(])472 2569 y
- (Starts)g(the)f(next)g(iteration)g(of)g(the)g(loop.)354 2634 y
- Fd(redo)i Fj([)p Ff(LABEL)p Fj(])472 2690 y
- (Restarts)f(the)f(loop)g(block)g(without)f(evaluating)g(the)h(conditional)f
- (again.)354 2755 y
- Fd(return)j Ff(EXPR)472 2812 y
- Fj(Returns)f(from)f(a)h(subroutine)e(with)h(the)g(value)g
- (speci\256ed.)p 354 3018 1512 3 v 354 3065 a Fg(3)p eop
- %%Page: 4 6
- bop 1362 -101 a Fg(Perl)14 b(Reference)f(Guide)p 354 -89 1512 3 v 355 -2 a Fl
- (6.)19 b(Operators)p 355 19 1512 2 v 354 119 a Fi(+)28 b(-)g(*)g(/)g Fj
- (Addition,)10 b(subtraction,)g(multiplication,)g(division.)354 176 y
- Fi(\045)193 b Fj(Modulo)10 b(division.)354 232 y
- Fi(|)i(&)44 b(\303)83 b Fj(Bitwise)10 b(or)n(,)j(bitwise)d(and,)i(bitwise)e
- (exclusive)h(or)m(.)354 289 y
- Fi(>>)56 b(<<)g Fj(Bitwise)10 b(shift)h(right,)g(bitwise)f(shift)h
- (left.)354 345 y
- Fi(**)166 b Fj(Exponentiation.)354 402 y
- Fi(.)193 b Fj(Concatenation)11 b(of)g(two)g(strings.)354 458 y
- Fd(x)197 b Fj(Returns)11 b(a)h(string)e(or)i(array)g(consisting)d(of)j(the)f
- (left)g(operand)h(\(an)g(array)g(or)574 515 y
- (a)f(string\))g(repeated)h(the)f(number)g(of)g(times)g(speci\256ed)h(by)f
- (the)g(right)g(operand.)354 579 y
- (All)g(of)h(the)f(above)g(operators)h(also)f(have)g(an)h(assignment)e
- (operator)n(,)i(e.g.)g(\252)p Fi(.=)p Fj(\272.)354 644 y
- Fi(++)56 b(--)g Fj(Auto-increment)10 b(\(magical)h(on)g(strings\),)g
- (auto-decrement.)354 701 y
- Fi(?)28 b(:)138 b Fj(Alternation)10 b(\(if-then-else\))i(operator)m(.)354 757 y
- Fi(|)q(|)55 b(&&)h Fj(Logical)10 b(or)n(,)i(logical)f(and.)354 813 y
- Fi(=)d(=)48 b(!=)56 b Fj(Numeric)11 b(equality)m(,)g(inequality)m(.)354 870 y
- Fd(eq)62 b(ne)g Fj(String)11 b(equality)m(,)g(inequality)m(.)354 926 y
- Fi(<)83 b(>)g Fj(Numeric)11 b(less)g(than,)g(greater)h(than.)354 983 y
- Fd(lt)84 b(gt)71 b Fj(String)11 b(less)f(than,)i(greater)g(than.)354 1039 y
- Fi(<=)56 b(>=)g Fj(Numeric)11 b(less)g(\(greater\))h(than)f(or)h(equal)f
- (to.)354 1096 y
- Fd(le)75 b(ge)62 b Fj(String)11 b(less)f(\(greater\))j(than)e(or)h
- (equal.)354 1152 y
- Fi(<=>)139 b Fj(Numeric)11 b(compare.)h(Returns)f(-1,)h(0)f(or)h(1.)354 1209 y
- Fd(cmp)135 b Fj(String)11 b(compare.)h(Returns)f(-1,)h(0)f(or)h(1.)354 1265 y
- Fi(=\304)56 b(!\304)g Fj(Search)12 b(pattern,)g(substitution,)d(or)i
- (translation)f(\(negated\).)354 1322 y
- Fi(..)166 b Fj(Enumeration,)10 b(also)h(input)g(line)f(range)i(operator)m
- (.)354 1378 y
- Fi(,)193 b Fj(Comma)11 b(operator)m(.)355 1508 y
- Fl(7.)19 b(File)g(test)j(operators)p 355 1529 V 354 1630 a Fj(These)12 b
- (unary)f(operators)g(takes)h(one)f(ar)o(gument,)h(either)f(a)h(\256lename)f
- (or)h(a)f(\256lehandle,)h(and)354 1686 y
- (tests)f(the)g(associated)g(\256le)h(to)f(see)h(if)f(something)f(is)h(true)g
- (about)g(it.)g(If)h(the)f(ar)o(gument)g(is)354 1743 y
- (omitted,)g(tests)f Fi($_)j Fj(\(except)e(for)h Fi(-t,)h Fj(which)e(tests)f Fi
- (STDIN)p Fj(\).)k(If)e(the)f(special)g(ar)o(gument)h Fi(_)354 1799 y
- Fj(\(underscore\))g(is)f(passed,)h(uses)f(the)g(info)g(of)h(the)f(preceding)g
- (test.)354 1864 y
- Fi(-r)29 b(-w)f(-x)g(-o)650 1920 y
- Fj(File)11 b(is)g(readable/writable/executable/owned)g(by)g(ef)o(fective)h
- (uid.)354 1985 y
- Fi(-R)29 b(-W)f(-X)g(-O)650 2042 y
- Fj(File)11 b(is)g(readable/writable/executable/owned)g(by)g(real)h
- (uid.)354 2106 y
- Fi(-e)29 b(-z)f(-s)77 b Fj(File)11 b(exists)g(/)g(has)g(zero/non-zero)h
- (size.)354 2171 y
- Fi(-f)29 b(-d)159 b Fj(File)11 b(is)g(a)h(plain)e(\256le,)j(a)e(directory)m
- (.)354 2236 y
- Fi(-l)29 b(-S)f(-p)77 b Fj(File)11 b(is)g(a)h(symbolic)d(link,)i(a)h(socket,)g
- (a)f(named)g(pipe)g(\(FIFO\).)354 2301 y
- Fi(-b)29 b(-c)159 b Fj(File)11 b(is)g(a)h(block/character)g(special)f
- (\256le.)354 2365 y
- Fi(-u)29 b(-g)f(-k)77 b Fj(File)11 b(has)g(setuid/setgid/sticky)d(bit)j
- (set.)354 2430 y
- Fi(-t)242 b Fj(T)m(ests)10 b(if)i(\256lehandle)f(\()p Fi(STDIN)j Fj(by)d
- (default\))g(is)g(opened)g(to)g(a)h(tty)m(.)354 2495 y
- Fi(-T)29 b(-B)159 b Fj(File)11 b(is)g(a)h(text/non-text)d(\(binary\))j
- (\256le.)g Fi(-T)g Fj(and)g Fi(-B)g Fj(return)f(TRUE)h(on)f(a)650 2551 y
- (null)f(\256le,)i(or)g(a)f(\256le)h(at)g(EOF)f(when)h(testing)e(a)h
- (\256lehandle.)354 2616 y
- Fi(-M)29 b(-A)f(-C)77 b Fj(File)11 b(creation)h(/)f(access)h(/)f(inode)g
- (change)g(time.)g(Measured)h(in)f(days)g(since)650 2673 y
- (this)f(program)h(started.)h(See)g(also)f Fi($\303T)i Fj(in)e(section)f
- (\252Special)i(V)-5 b(ariables\272.)p 354 3018 1512 3 v 1838 3065 a Fg(4)p eop
- %%Page: 5 7
- bop 354 -101 a Fg(Perl)14 b(Reference)f(Guide)p 354 -89 1512 3 v 354 -12 a Fj
- (A)f Ff(LIST)f Fj(is)g(a)g(\(possibly)f(parenthesised\))h(list)g(of)g
- (expressions,)g(variables)g(or)h Ff(LIST)p Fj(s.)f(An)354 45 y
- (array)i(variable)e(or)g(an)h(array)g(slice)f(may)g(always)h(be)f(used)g
- (instead)g(of)g(a)h Ff(LIST)p Fj(.)355 168 y
- Fl(8.)19 b(Arithmetic)i(functions)p 355 189 1512 2 v 354 290 a Fd(atan2\()p Ff
- (Y)p Fd(,)p Ff(X)p Fd(\))472 346 y
- Fj(Returns)12 b(the)f(arctangent)h(of)f Ff(Y)p Fj(/)p Ff(X)g Fj(in)g(the)g
- (range)h(-)p Fb(\031)h Fj(to)e Fb(\031)r Fj(.)354 411 y
- Fd(cos\()p Ff(EXPR)p Fe(y)o Fd(\))p Fj(*)472 467 y
- (Returns)h(the)f(cosine)g(of)h Ff(EXPR)e Fj(\(expressed)i(in)f
- (radians\).)354 532 y
- Fd(exp\()p Ff(EXPR)p Fe(y)o Fd(\))p Fj(*)472 588 y
- (Returns)h Fi(e)g Fj(to)f(the)g(power)g(of)h Ff(EXPR)p Fj(.)354 653 y
- Fd(int\()p Ff(EXPR)p Fe(y)n Fd(\))p Fj(*)472 710 y
- (Returns)g(the)f(integer)g(portion)g(of)g Ff(EXPR)p Fj(.)354 774 y
- Fd(log\()p Ff(EXPR)p Fe(y)o Fd(\))p Fj(*)472 831 y
- (Returns)h(natural)f(logarithm)f(\(base)i Fi(e)p Fj(\))g(of)f Ff(EXPR)p Fj
- (.)354 896 y
- Fd(rand)p Fj([)p Fd(\()p Ff(EXPR)p Fd(\))p Fj(*])472 952 y
- (Returns)h(a)g(random)f(fractional)g(number)g(between)g(0)h(and)f(the)g
- (value)h(of)f Ff(EXPR)p Fj(.)g(If)472 1008 y
- Ff(EXPR)g Fj(is)g(omitted,)f(returns)h(a)h(value)f(between)h(0)f(and)h
- (1.)354 1073 y
- Fd(sin\()p Ff(EXPR)p Fe(y)n Fd(\))p Fj(*)472 1130 y
- (Returns)g(the)f(sine)g(of)h Ff(EXPR)e Fj(\(expressed)i(in)f
- (radians\).)354 1194 y
- Fd(sqrt\()p Ff(EXPR)p Fe(y)o Fd(\))p Fj(*)472 1251 y
- (Return)h(the)f(square)h(root)f(of)g Ff(EXPR)p Fj(.)354 1316 y
- Fd(srand)p Fj([)p Fd(\()p Ff(EXPR)p Fd(\))p Fj(*])472 1372 y
- (Sets)h(the)f(random)g(number)g(seed)h(for)f(the)g(rand)h(operator)m
- (.)354 1437 y
- Fd(time)32 b Fj(Returns)12 b(the)f(number)g(of)g(seconds)g(since)h(January)f
- (1,)h(1970.)f(Suitable)g(for)h(feeding)472 1493 y
- (to)f Fd(gmtime)g Fj(and)h Fd(localtime)p Fj(.)355 1618 y
- Fl(9.)19 b(Conversion)i(functions)p 355 1639 V 354 1740 a Fd(gmtime\()p Ff
- (EXPR)p Fd(\))p Fj(*)472 1796 y
- (Converts)12 b(a)f(time)g(as)g(returned)h(by)f(the)g Fd(time)g Fj(function)g
- (to)g(a)g(9-element)g(array)i(\()p Fi($)p Fj(sec,)472 1852 y
- Fi($)q Fj(min,)e Fi($)p Fj(hour)n(,)h Fi($)p Fj(mday)m(,)g Fi($)p Fj(mon,)f Fi
- ($)p Fj(year)n(,)i Fi($)p Fj(wday)m(,)f Fi($)q Fj(yday)m(,)f Fi($)q Fj
- (isdst\))f(with)g(the)i(time)472 1909 y
- (analyzed)g(for)g(the)f(Greenwich)h(timezone.)f Fi($)p Fj(mon)g(has)g(the)g
- (range)h(0..11)g(and)f Fi($)q Fj(wday)472 1965 y
- (has)h(the)f(range)h(0..6.)354 2030 y
- Fd(hex\()p Ff(EXPR)p Fe(y)o Fd(\))p Fj(*)472 2087 y
- (Returns)g(the)f(decimal)g(value)g(of)h Ff(EXPR)e Fj(interpreted)i(as)f(an)h
- (hex)f(string.)354 2151 y
- Fd(localtime\()p Ff(EXPR)p Fd(\))p Fj(*)472 2208 y
- (Converts)h(a)f(time)g(as)g(returned)h(by)f(the)g Fd(time)g Fj(function)g(to)g
- (a)g(9-element)g(array)i(with)472 2264 y
- (the)f(time)e(analyzed)i(for)g(the)f(local)g(timezone.)354 2329 y
- Fd(oct\()p Ff(EXPR)p Fe(y)o Fd(\))p Fj(*)472 2385 y
- (Returns)h(the)f(decimal)g(value)g(of)h Ff(EXPR)e Fj(interpreted)i(as)f(an)h
- (octal)f(string.)g(If)g Ff(EXPR)472 2442 y
- Fj(starts)g(of)o(f)h(with)f Fi(0x)p Fj(,)h(interprets)f(it)g(as)g(a)h(hex)f
- (string)g(instead.)354 2507 y
- Fd(ord\()p Ff(EXPR)p Fe(y)o Fd(\))p Fj(*)472 2563 y
- (Returns)h(the)f(ascii)g(value)h(of)f(the)g(\256rst)h(character)g(of)g Ff
- (EXPR)p Fj(.)354 2628 y
- Fd(vec\()p Ff(EXPR)p Fd(,)p Ff(OFFSET)p Fd(,)p Ff(BITS)p Fd(\))472 2684 y
- Fj(T)n(reats)g Ff(EXPR)f Fj(as)g(a)h(string)e(of)i(unsigned)e(ints,)h(and)g
- (yields)g(the)g(bit)g(at)g Ff(OFFSET)p Fj(.)472 2741 y
- Ff(BITS)g Fj(must)f(be)i(between)f(1)h(and)f(32.)h(May)f(be)g(used)g(as)h(an)f
- (lvalue.)p 354 3018 1512 3 v 354 3065 a Fg(5)p eop
- %%Page: 6 8
- bop 1362 -101 a Fg(Perl)14 b(Reference)f(Guide)p 354 -89 1512 3 v 355 -2 a Fl
- (10.)19 b(Structure)k(conversion)p 355 19 1512 2 v 354 119 a Fd(pack\()p Ff
- (TEMPLA)m(TE)p Fd(,)p Ff(LIST)p Fd(\))472 176 y
- Fj(Packs)12 b(the)g(values)f(into)f(a)i(binary)f(structure)g(using)f Ff
- (TEMPLA)m(TE)p Fj(.)354 241 y
- Fd(unpack\()p Ff(TEMPLA)m(TE)p Fd(,)p Ff(EXPR)p Fd(\))472 297 y
- Fj(Unpacks)i(the)f(structure)g Ff(EXPR)f Fj(into)h(an)g(array)m(,)i(using)d Ff
- (TEMPLA)m(TE)p Fj(.)472 362 y
- Ff(TEMPLA)m(TE)h Fj(is)g(a)g(sequence)h(of)g(characters)g(as)g
- (follows:)527 427 y
- Fi(a)28 b Fj(/)42 b Fi(A)55 b Fj(Ascii)11 b(string,)g(null)f(/)h(space)h
- (padded)527 483 y
- Fi(b)28 b Fj(/)42 b Fi(B)55 b Fj(Bit)11 b(string)g(in)g(ascending)g(/)g
- (descending)g(order)527 540 y
- Fi(c)28 b Fj(/)42 b Fi(C)55 b Fj(Native)11 b(/)g(unsigned)g(char)h
- (value)527 596 y
- Fi(f)28 b Fj(/)42 b Fi(d)55 b Fj(Single)11 b(/)g(double)g(\257oat)h(in)f
- (native)g(format)527 652 y
- Fi(h)28 b Fj(/)42 b Fi(H)55 b Fj(Hex)12 b(string,)e(low)h(/)g(high)g(nybble)g
- (\256rst.)527 709 y
- Fi(i)28 b Fj(/)42 b Fi(I)55 b Fj(Signed)11 b(/)g(unsigned)g(integer)g
- (value)527 765 y
- Fi(l)28 b Fj(/)42 b Fi(L)55 b Fj(Signed)11 b(/)g(unsigned)g(long)f
- (value)527 822 y
- Fi(n)28 b Fj(/)42 b Fi(N)55 b Fj(Short)11 b(/)g(long)g(in)g(network)g(byte)g
- (order)527 878 y
- Fi(s)28 b Fj(/)42 b Fi(S)55 b Fj(Signed)11 b(/)g(unsigned)g(short)f
- (value)527 935 y
- Fi(u)28 b Fj(/)42 b Fi(p)55 b Fj(Uuencoded)11 b(string)g(/)g(Pointer)g(to)g
- (a)h(string)527 991 y
- Fi(x)28 b Fj(/)42 b Fi(@)55 b Fj(Null)11 b(byte)g(/)g(null)f(\256ll)h(until)g
- (position)527 1048 y
- Fi(X)165 b Fj(Backup)12 b(a)g(byte)472 1112 y
- (Each)g(character)h(may)e(be)g(followed)g(by)g(a)h(decimal)f(number)g(which)g
- (will)f(be)i(used)f(as)472 1169 y
- (a)h(repeat)g(count,)f(an)h Fi(*)g Fj(speci\256es)f(all)g(remaining)g(ar)o
- (guments.)472 1225 y
- (If)h(the)f(format)h(is)f(preceded)h(with)e Fi(\045)p Ff(N)p Fj(,)j Fd
- (unpack)f Fj(returns)f(an)h Ff(N)p Fj(-bit)f(checksum)472 1282 y
- (instead.)472 1338 y
- (Spaces)i(may)e(be)g(included)g(in)g(the)g(template)g(for)g(readability)g
- (purposes.)355 1461 y
- Fl(11.)19 b(String)i(functions)p 355 1482 V 354 1583 a Fd(chop\()p Ff(LIST)p Fe
- (y)p Fd(\))472 1639 y
- Fj(Chops)12 b(of)o(f)f(the)h(last)e(character)j(on)e(all)g(elements)g(of)h
- (the)f(list;)f(returns)h(the)g(last)472 1696 y
- (chopped)h(character)m(.)h(The)f(parentheses)f(may)g(be)h(omitted)e(if)h Ff
- (LIST)g Fj(is)g(a)h(single)472 1752 y
- (variable.)354 1817 y
- Fd(crypt\()p Ff(PLAINTEXT)p Fd(,)p Ff(SAL)m(T)p Fd(\))472 1873 y
- Fj(Encrypts)f(a)h(string.)354 1938 y
- Fd(eval\()p Ff(EXPR)p Fe(y)n Fd(\))p Fj(*)472 1995 y
- SHAR_EOF
- true || echo 'restore of refbase.ps failed'
- fi
- echo 'End of part 1'
- echo 'File refbase.ps is continued in part 2'
- echo 2 > _shar_seq_.tmp
- exit 0
- exit 0 # Just in case...
-