home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / misc / volume37 / perlref / part03 < prev    next >
Encoding:
Text File  |  1993-05-18  |  55.6 KB  |  1,189 lines

  1. Newsgroups: comp.sources.misc
  2. From: jv@mh.nl (Johan Vromans)
  3. Subject: v37i084:  perlref - Perl Reference Guide 4.036.1, Part03/03
  4. Message-ID: <1993May19.212159.13054@sparky.imd.sterling.com>
  5. X-Md4-Signature: aca1905fa1d2de1cae8ef44fb5422df8
  6. Date: Wed, 19 May 1993 21:21:59 GMT
  7. Approved: kent@sparky.imd.sterling.com
  8.  
  9. Submitted-by: jv@mh.nl (Johan Vromans)
  10. Posting-number: Volume 37, Issue 84
  11. Archive-name: perlref/part03
  12. Environment: Perl v4.036
  13. Supersedes: perlref: Volume 32, Issue 1-4
  14.  
  15. #! /bin/sh
  16. # This is a shell archive.  Remove anything before this line, then feed it
  17. # into a shell via "sh file" or similar.  To overwrite existing files,
  18. # type "sh file -c".
  19. # Contents:  ChangeLog Makefile parr refbase.ps.B
  20. # Wrapped by kent@sparky on Wed May 19 14:08:37 1993
  21. PATH=/bin:/usr/bin:/usr/ucb:/usr/local/bin:/usr/lbin ; export PATH
  22. echo If this archive is complete, you will see the following message:
  23. echo '          "shar: End of archive 3 (of 3)."'
  24. if test -f 'ChangeLog' -a "${1}" != "-c" ; then 
  25.   echo shar: Will not clobber existing file \"'ChangeLog'\"
  26. else
  27.   echo shar: Extracting \"'ChangeLog'\" \(4685 characters\)
  28.   sed "s/^X//" >'ChangeLog' <<'END_OF_FILE'
  29. XTue May 18 10:05:18 1993  Johan Vromans  (jv@largo)
  30. X
  31. X    ==== Released 4.036.1 ====
  32. X
  33. X    * README 2.6:
  34. X      Update to 4.036. Add info about the japanese version.
  35. X
  36. X    * Makefile 2.9:
  37. X      Update to 4.036.
  38. X
  39. X    * MANIFEST: new file.
  40. X
  41. X    * refbase.sty 2.6:
  42. X      Update revision to 4.036.
  43. X
  44. X    * ch02.tex 2.5:
  45. X      Add exception for \' and \\ in ''-strings.
  46. X
  47. X    * ch06.tex 2.3:
  48. X      Add unary ! and ~ .
  49. X
  50. X    * ch07.tex 2.4:
  51. X      Correct -M to file modification.
  52. X
  53. X    * ch99.tex 2.4:
  54. X      Update.
  55. X
  56. XThu Sep  3 16:18:25 1992  Johan Vromans  (jv at largo)
  57. X
  58. X    * Makefile 2.8:
  59. X      Combine PostScript and LaTeX in one posting.
  60. X
  61. XWed Sep  2 15:18:08 1992  Johan Vromans  (jv at largo)
  62. X
  63. X    ==== Released 4.035.1 ====
  64. X
  65. X    * Makefile 2.7:
  66. X      Updated to 4.035.
  67. X      Add symbols for LATEX and DVIPS.
  68. X      Add entry for guide-test.ps.
  69. X      Add chapter 27.
  70. X      Do not run psneat since it produces incorrect code.
  71. X
  72. X    * ch22.tex 2.5:
  73. X      Refer to manual for scalar return values.
  74. X      Change 'Info is' to 'Returns'.
  75. X
  76. X    * ch00.tex 2.4:
  77. X      Decrease space before the table of contents.
  78. X      Add chapter 27.
  79. X
  80. X    * ch99.tex 2.3:
  81. X      Eliminate \newpage (moved to refmaster.tex).
  82. X
  83. X    * ch27.tex 1.2:
  84. X      New chapter 'Environment variables'.
  85. X
  86. X    * ch24.tex 2.3:
  87. X      $^L: New in 4.035.
  88. X
  89. X    * ch16.tex 2.3:
  90. X      s: Note bracketing quotes. Not a 4.035 feature.
  91. X
  92. X    * ch13.tex 2.3:
  93. X      stat: Indicate return of null list if the call fails.
  94. X
  95. X    * ch11.tex 2.3:
  96. X      eval: Fix typo run-time.
  97. X      rindex: Shorten description so substr fits on the same page.
  98. X
  99. X    * ch07.tex 2.3:
  100. X      Add gid to -rR/wW/xX. Separate -oO.
  101. X      -s: Make separate entry. Indicate that it returns the
  102. X      size. Not a 4.035 feature.
  103. X
  104. X    * ch04.tex 2.3:
  105. X      Make semicolon at end of BLOCK optional.
  106. X
  107. X    * ch02.tex 2.4:
  108. X      numeric: Add '1_2345' format (blech).
  109. X
  110. X    * ch01.tex 2.4:
  111. X      -0: Change 'See also -L'to 'See also '-l' (typo).
  112. X
  113. X    * refbase.sty 2.5:
  114. X      Updated to 4.035. Add \makeupspace.
  115. X
  116. X    * refmaster.tex 2.3:
  117. X      Add chapter 27. Change makeups.
  118. X
  119. X    * README 2.5:
  120. X      Updated to 4.035.
  121. X
  122. XFri May 22 09:14:22 1992  Johan Vromans  (jv at largo)
  123. X
  124. X    * refbase.sty 2.4:
  125. X      Michael Jaegermann, who donated the NFSS code, used his wife's
  126. X      account for mailing me, so his wife got the credits instead.
  127. X
  128. XThu Apr  9 16:25:29 1992  Johan Vromans  (jv at largo)
  129. X
  130. X    * ch22: 
  131. X      "...does include not OK."  You may want to change it to read
  132. X      "...does not include OK."
  133. X      Thanks to Ron Pool, ron_p@empire.cce.cornell.edu
  134. X
  135. XTue Mar  3 12:46:00 1992  Johan Vromans  (jv at largo)
  136. X
  137. X    * ch01: Correct '-L' to '-l'.
  138. X      Thanks to Chris Eich <chrise@hpsrcje.sr.hp.com>.
  139. X
  140. X    * ch10: Add v/V to TEMPLATE.
  141. X      Thanks to DaviD W. Sanderson (dws@cs.wisc.edu)
  142. X
  143. XWed Feb 19 15:02:26 1992  Johan Vromans  (jv at largo)
  144. X
  145. X     * Released to USEnet. Official version is 4.019.1.
  146. X
  147. X    * refbase.sty: add support for new font selection scheme.
  148. X      Get rid of overfull hboxes.
  149. X
  150. X    * refbase.sty, refmaster.tex, ch*.tex: update for 4.019.
  151. X      Add description for "sort { EXPR;...} @array" .
  152. X      Describe "eval { ... }" .
  153. X      Add "scalar(@array)" and "scalar(%array)" .
  154. X      Small corrections.
  155. X
  156. X    * Makefile: new kit assembly.
  157. X
  158. XTue Aug 27 18:41:42 1991  Johan Vromans  (jv at largo)
  159. X
  160. X    * ch22: add 'gethostbyaddr'
  161. X
  162. XFri Aug  2 09:44:47 1991  Johan Vromans  (jv at largo)
  163. X
  164. X    * parr: add code for duplex printing.
  165. X
  166. X    * README: describe duplex printing, version number.
  167. X
  168. XSat Jul 27 15:23:01 1991  Johan Vromans  (jv at pronto)
  169. X
  170. X    * parr: Adjusted '%%Pages:' to reflect actual number of sheets.
  171. X
  172. XFri Jul 26 23:10:00 1991  Johan Vromans  (jv at pronto)
  173. X
  174. X    * Add Layout document that describes in more detail how the
  175. X      Reference Guide should look like.
  176. X
  177. X    * Makefile/README: Incorporate Layout.
  178. X
  179. XFri Jul 26 09:15:58 1991  Johan Vromans  (jv at largo)
  180. X
  181. X    * Released to USEnet (patch). Official version is 4.010.2.1.
  182. X
  183. X    * ch04: typo: | -> || (two locations)
  184. X
  185. X    * parr: slightly increase $topmargin for US paper.
  186. X
  187. X    * ch06: typo: log or/and | & -> || &&
  188. X
  189. XThu Jul 25 11:11:24 1991  Johan Vromans  (jv at largo)
  190. X
  191. X    * Makefile/README: Clarify the use of guide-{odd,even?}.ps.
  192. X
  193. X    * parr: Suppress extraneous %%Page comments to obtain more
  194. X      conformant PostScript. Some PS viewers and printers (or
  195. X      print-spoolers) seem to choke in these extraneous comments.
  196. X
  197. X      Set $leftmargin to 0 for US-Letter format. According to most
  198. X      respondents this seems to be the correct value.
  199. X
  200. XTue Jul 23 18:32:54 1991  Johan Vromans  (jv at largo)
  201. X
  202. X    * Makefile: allow MASTER=test for testing.
  203. X
  204. X    * ch03: typo: $var -> $#var is last element of array.
  205. X
  206. X    * ch00: move front page info a bit down/right.
  207. X
  208. XMon Jul 22 22:05:57 1991  Johan Vromans  (jv at pronto)
  209. X
  210. X    * ch00: typo: deigned -> designed.
  211. X
  212. XSat Jul 20 00:31:47 1991  Johan Vromans  (jv at pronto)
  213. X
  214. X    * Released to USEnet. Official version is 4.010.1.8.
  215. X
  216. X    * This is a brand new version.
  217. X
  218. END_OF_FILE
  219.   if test 4685 -ne `wc -c <'ChangeLog'`; then
  220.     echo shar: \"'ChangeLog'\" unpacked with wrong size!
  221.   fi
  222.   # end of 'ChangeLog'
  223. fi
  224. if test -f 'Makefile' -a "${1}" != "-c" ; then 
  225.   echo shar: Will not clobber existing file \"'Makefile'\"
  226. else
  227.   echo shar: Extracting \"'Makefile'\" \(2931 characters\)
  228.   sed "s/^X//" >'Makefile' <<'END_OF_FILE'
  229. X# @(#)@ Makefile 4.2.9 - Makefile for Perl Reference Guide
  230. X
  231. X# This Makefile requires perl to be in your PATH.
  232. X
  233. XSHELL    = /bin/sh
  234. XLATEX    = latex
  235. XDVIPS    = dvips
  236. X
  237. X# Delete the next line if you use US Letter paper format
  238. XPAPER    = -a4
  239. X
  240. Xall:    refguide.ps
  241. X
  242. X2pass:    guide-odd.ps guide-even1.ps guide-even2.ps
  243. X
  244. X# 2 pages per page, suitable for centrefold printing.
  245. Xrefguide.ps:    refbase.ps parr
  246. X    perl ./parr $(PAPER) \
  247. X        -o 21,2,3,20,19,4,5,18,17,6,7,16,15,8,9,14,13,10,11,12 \
  248. X        refbase.ps > refguide.ps
  249. X
  250. X# Odd and even passes for centerfold printing. 
  251. X# First print guide-odd.ps, then find out which of the others to use.
  252. X# guide-even1.ps is for printers with correct output stacking like
  253. X# Apple LaserWriter II. 
  254. X# guide-even2.ps for printers with reverse output stacking, like old
  255. X# Apple LaserWriters. 
  256. X
  257. Xguide-odd.ps:    refbase.ps parr
  258. X    perl ./parr $(PAPER) \
  259. X        -o 21,2,19,4,17,6,15,8,13,10 refbase.ps > guide-odd.ps
  260. X
  261. Xguide-even1.ps:    refbase.ps parr
  262. X    perl ./parr $(PAPER) \
  263. X        -o 11,12,9,14,7,16,5,18,3,20 refbase.ps > guide-even1.ps
  264. X
  265. Xguide-even2.ps:    refbase.ps parr
  266. X    perl ./parr $(PAPER) \
  267. X        -o 3,20,5,18,7,16,9,14,11,12 refbase.ps > guide-even2.ps
  268. X
  269. Xguide-test.ps:    refbase.ps parr
  270. X    perl ./parr $(PAPER) \
  271. X        -o 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21 refbase.ps > guide-test.ps
  272. X
  273. Xclean:
  274. X    rm -f refguide.ps guide-odd.ps guide-even1.ps guide-even2.ps \
  275. X        refbase.dvi core *~
  276. X
  277. X# For maintenance use only ...
  278. X
  279. XVER    = 4.036
  280. X
  281. XCH    = ch00.tex ch01.tex ch02.tex ch03.tex ch04.tex ch05.tex \
  282. X      ch06.tex ch07.tex ch08.tex ch09.tex ch10.tex ch11.tex \
  283. X      ch12.tex ch13.tex ch14.tex ch15.tex ch16.tex ch17.tex \
  284. X      ch18.tex ch19.tex ch20.tex ch21.tex ch22.tex ch23.tex \
  285. X      ch24.tex ch25.tex ch26.tex ch27.tex \
  286. X      ch99.tex
  287. XSRC    = refbase.tex refbase.sty
  288. XAUX    = README ChangeLog Makefile parr Layout
  289. X
  290. X# Our TeX places its output here, never mind if yours doesn't.
  291. XTEXTMP = /usr/tmp/$(USER)TeX.
  292. X
  293. X# NOTE: DO NOT REMOVE OR CHANGE '-ta4' EVEN IF USING NON-A4 PAPER
  294. Xrefbase-ps:    refbase.dvi
  295. X    $(DVIPS) -r0 -ta4 refbase.dvi 
  296. X
  297. X#    -if [ -f psneat.pl ]; then \
  298. X#        mv refbase.ps refbase.ps~; \
  299. X#        perl ./psneat.pl refbase.ps~ > refbase.ps; \
  300. X#    else true; \
  301. X#    fi
  302. X
  303. Xrefbase.dvi:    $(SRC)
  304. X    $(LATEX) refbase.tex < /dev/null
  305. X    -if [ -f $(TEXTMP)dvi ]; then \
  306. X        mv $(TEXTMP)dvi refbase.dvi; \
  307. X    else true; \
  308. X    fi
  309. X
  310. XMASTER  = ref
  311. Xrefbase-tex:  $(MASTER)master.tex $(CH) makebase.pl
  312. X    perl ./makebase.pl $(REV) $(MASTER)master.tex > refbase.tex
  313. X
  314. Xkit:    
  315. X    REV=`cat Revision.SEQ`; \
  316. X    expr $$REV + 1 >Revision.SEQ; \
  317. X    (echo ""; echo Revision: $(VER).$$REV; what $(SRC) $(CH)) >> Revision; \
  318. X    $(MAKE) -$(MAKEFLAGS) REV=$$REV refbase-tex refbase-ps kitinternal
  319. X
  320. Xkitinternal:
  321. X    rm -f perlref-*.shr.* perlref-$(VER).$(REV).tar.Z
  322. X    shar -c -n perlref-$(VER).$(REV) -a -s 'jv@mh.nl' \
  323. X        -o perlref-$(VER).$(REV).shr -L50 -f $(AUX) $(SRC) refbase.ps
  324. X    pdtar -zcvf perlref-$(VER).$(REV).tar.Z $(AUX) $(SRC) refbase.ps
  325. X    ls -l perlref-*.shr.* perlref-*.tar.Z
  326. X
  327. Xident:
  328. X    what $(AUX) $(SRC)
  329. END_OF_FILE
  330.   if test 2931 -ne `wc -c <'Makefile'`; then
  331.     echo shar: \"'Makefile'\" unpacked with wrong size!
  332.   fi
  333.   # end of 'Makefile'
  334. fi
  335. if test -f 'parr' -a "${1}" != "-c" ; then 
  336.   echo shar: Will not clobber existing file \"'parr'\"
  337. else
  338.   echo shar: Extracting \"'parr'\" \(4291 characters\)
  339.   sed "s/^X//" >'parr' <<'END_OF_FILE'
  340. X#!/usr/bin/perl
  341. X
  342. X# @(#)@ parr 4.2.3
  343. X
  344. X# rearrange conforming PS code to print the pages in an arbitrary
  345. X# order.  The -o option takes a list of ranges, like this:
  346. X#    1-5    1-10,11-20    11-,1-10
  347. X# usage: parr [-a4] [-o list] [file]
  348. X#
  349. X# jgreely@cis.ohio-state.edu, 89/10/23
  350. X# modified by jv@mh.nl, 91/078/15
  351. X
  352. X$order='';
  353. X$signFlag='';
  354. X$signCount=0;
  355. X$DEBUG=0;
  356. X$TMPDIR='/usr/tmp';
  357. X
  358. Xwhile ($_ = $ARGV[0],/^-/) {
  359. X    shift;
  360. X    last if /^-\-$/;
  361. X    /^-o(rder)?$/ && ($order = shift,next);
  362. X    /^-a4$/ && ($a4flag++,next);
  363. X    die "usage: parr [-a4] [-order list] [file]\n";
  364. X}
  365. X
  366. X$file = "$TMPDIR/p$$.header";
  367. X@files = ($file);
  368. X$sheet=0;
  369. Xopen(FILE,">$file") || die "$file: $!\n";
  370. Xwhile (<>) {
  371. X    #
  372. X    # hack to use NeXT Preview: strip old '%%Pages:' lines
  373. X    #
  374. X    next if /^%%Pages:/;
  375. X    if (/^%%Page:/) {
  376. X        $sheet++;
  377. X        $pagemap{$sheet} = $1 if /%%Page:\s+(\S+)\s+\S+/;
  378. X        close(FILE);
  379. X        $file = "$TMPDIR/p$$.$sheet";
  380. X        push(@files,$file);
  381. X        open(FILE,">$file") || die "$file: $!\n";
  382. X    }
  383. X    if (/^%%Trailer/) {
  384. X        close(FILE);
  385. X        $file = "$TMPDIR/p$$.trailer";
  386. X        push(@files,$file);
  387. X        open(FILE,">$file") || die "$file: $!\n";
  388. X    }
  389. X    if (/^TeXDict begin @(a4|letter)/) {
  390. X        # Insert twoup before switching to TeXDict
  391. X        &twoup;
  392. X        $twoup++;
  393. X        &double_sided;
  394. X        print FILE "TeXDict begin @landscape\n";
  395. X        next;
  396. X    }
  397. X    print FILE $_;
  398. X}
  399. Xclose(FILE);
  400. Xdie "twoup insertion error\n" unless $twoup == 1;
  401. X
  402. X@order = ();
  403. Xif ($order) {
  404. X    foreach $range (split(/,/,$order)) {
  405. X        ($start,$sep,$end) = split(/(-)/,$range);
  406. X        $start = 1 unless $start;
  407. X        $end = $sheet unless $end;
  408. X        if ($sep) {
  409. X            push(@order,$start..$end);
  410. X        }else{
  411. X            push(@order,$start);
  412. X        }
  413. X    }
  414. X}elsif ($signFlag) {
  415. X    if (! $signCount) {
  416. X        $signCount = $sheet;
  417. X        $signCount += (4 - $sheet % 4) if ($sheet % 4);
  418. X    }else{
  419. X        $signCount *=4;
  420. X    }
  421. X    for($base=0;$base<$sheet;$base+=$signCount) {
  422. X        @tmp = ($signCount/2+$base);
  423. X        push(@tmp,$tmp[0]+1,$tmp[0]+2,$tmp[0]-1);
  424. X        while ($tmp[3] > $base) {
  425. X            push(@order,@tmp);
  426. X            @tmp = ($tmp[0]-2,$tmp[1]+2,$tmp[2]+2,$tmp[3]-2);
  427. X        }
  428. X    }
  429. X}else{
  430. X    @order = (1..$sheet);
  431. X}
  432. X
  433. X@tmp=@order;
  434. X@order=();
  435. Xforeach $page (@tmp) {
  436. X    push(@order,$page > $sheet ? "B" : $page);
  437. X}
  438. X
  439. Xopen(FILE,"$TMPDIR/p$$.header");
  440. X$_ = <FILE>;
  441. Xprint $_,"%%Pages: (atend)\n";
  442. Xprint while <FILE>;
  443. Xclose(FILE);
  444. X
  445. X$count = 0;
  446. Xforeach $page (@order) {
  447. X    $count++;
  448. X    $num = "?";
  449. X    $num = $pagemap{$page} if defined $pagemap{$page};
  450. X    $num .= "/" . $pagemap{$order[$count]} 
  451. X        if defined $pagemap{$order[$count]};
  452. X    print "%%Page: $num ", ($count+1)/2, "\n" if $count & 1;
  453. X    print "%%OldPage: $page\n";
  454. X    if ($page eq "B") {
  455. X        print "showpage\n";
  456. X    }else{
  457. X        open(FILE,"$TMPDIR/p$$.$page");
  458. X        while (<FILE>) {
  459. X            print unless /^%%Page:/;
  460. X        }
  461. X        close(FILE);
  462. X    }
  463. X}
  464. Xopen(FILE,"$TMPDIR/p$$.trailer");
  465. Xprint while <FILE>;
  466. Xclose(FILE);
  467. Xprint "%%Pages: ", int(($count+1)/2), " 0\n";
  468. X
  469. Xunlink @files unless $DEBUG;
  470. Xexit(0);
  471. X
  472. Xsub twoup {
  473. X$factor = 0.707106781187;
  474. X
  475. X# Measurements are in 1/100 inch approx.
  476. Xif ( $a4flag) {
  477. X    $topmargin = -57;
  478. X    $leftmargin = 28;
  479. X    $othermargin = 445;    # do not change -- relative to $leftmargin
  480. X}
  481. Xelse {
  482. X    $topmargin = -30;
  483. X    $leftmargin = 0;
  484. X    $othermargin = 445;    # do not change -- relative to $leftmargin
  485. X}
  486. X$vsize = -1 - $factor;
  487. Xprint FILE <<EOD;
  488. X/isoddpage true def
  489. X/orig-showpage /showpage load def
  490. X/showpage {
  491. X        isoddpage not { orig-showpage } if
  492. X        /isoddpage isoddpage not store 
  493. X    } def
  494. X/bop-hook {
  495. X    /vsize $vsize def
  496. X        isoddpage 
  497. X    { $factor $factor scale $topmargin $leftmargin translate }
  498. X        { 0 $othermargin translate}
  499. X    ifelse
  500. X    } def
  501. X/end-hook{ isoddpage not { orig-showpage } if } def
  502. XEOD
  503. X}
  504. X
  505. Xsub double_sided {
  506. X
  507. X    # From: Tim Huckvale <tjh@praxis.co.uk>
  508. X    #
  509. X    # You may be interested in the following problem, and fix, that we
  510. X    # found when attempting to print the reference card on our Hewlett
  511. X    # Packard Laser-Jet IIISi printer.
  512. X    # 
  513. X    # On this printer, refguide.ps prints double-sided with the
  514. X    # reverse side of each sheet upside down.  We fixed it with the
  515. X    # following patch, applied before printing.
  516. X
  517. X    # From: Johan Vromans <jv@mh.nl>
  518. X    #
  519. X    # Okay -- consider this an unsupported feature.
  520. X
  521. X    print FILE <<EOD;
  522. Xstatusdict /setduplexmode known { statusdict begin true setduplexmode end } if
  523. Xstatusdict /settumble known { statusdict begin true settumble end } if
  524. XEOD
  525. X}
  526. X
  527. X# Local Variables:
  528. X# mode:(perl)
  529. X# End:
  530. END_OF_FILE
  531.   if test 4291 -ne `wc -c <'parr'`; then
  532.     echo shar: \"'parr'\" unpacked with wrong size!
  533.   fi
  534.   # end of 'parr'
  535. fi
  536. if test -f 'refbase.ps.B' -a "${1}" != "-c" ; then 
  537.   echo shar: Will not clobber existing file \"'refbase.ps.B'\"
  538. else
  539.   echo shar: Extracting \"'refbase.ps.B'\" \(40782 characters\)
  540.   sed "s/^X//" >'refbase.ps.B' <<'END_OF_FILE'
  541. X241 y Fd(opendir\()p Ff(DIRHANDLE)p Fd(,)p Ff(DIRNAME)p Fd(\))472
  542. X297 y Fj(Opens)h(a)f(directory)g(on)h(the)f(handle)g(speci\256ed.)354
  543. X362 y Fd(readdir\()p Ff(DIRHANDLE)p Fd(\))p Fj(*)472 418 y(Returns)h(the)f
  544. X(next)g(entry)g(\(or)h(an)g(array)g(of)f(entries\))h(in)f(the)g(directory)m
  545. X(.)354 483 y Fd(rewinddir\()p Ff(DIRHANDLE)p Fd(\))p Fj(*)472
  546. X540 y(Positions)f(the)i(directory)f(to)g(the)g(beginning.)354
  547. X604 y Fd(seekdir\()p Ff(DIRHANDLE)p Fd(,)p Ff(POS)p Fd(\))472
  548. X661 y Fj(Sets)h(position)e(for)h(readdir)h(on)f(the)g(directory)m(.)354
  549. X725 y Fd(telldir\()p Ff(DIRHANDLE)p Fd(\))p Fj(*)472 782 y(Returns)h(the)f
  550. X(postion)f(in)h(the)g(directory)m(.)355 905 y Fl(15.)19 b(Input)i(/)e(Output)
  551. Xp 355 926 V 354 1027 a Fj(In)12 b(input/output)c(operations,)k
  552. XFf(FILEHANDLE)e Fj(may)h(be)h(a)f(\256lehandle)h(as)f(opened)h(by)f(the)354
  553. X1083 y Fd(open)i Fj(operator)n(,)f(or)g(a)f(scalar)h(variable)g(which)f
  554. X(evaluates)g(to)g(the)g(name)g(of)h(a)g(\256lehandle)f(to)354
  555. X1140 y(be)h(used.)354 1204 y Fd(binmode\()p Ff(FILEHANDLE)p
  556. XFd(\))p Fj(*)472 1261 y(Arranges)g(for)g(the)f(\256le)h(opened)f(on)g
  557. XFf(FILEHANDLE)g Fj(to)g(be)g(read)h(in)f(\252binary\272)h(mode)472
  558. X1317 y(as)g(opposed)f(to)f(\252text\272)i(mode)f(\(MS-DOS)h(only\).)354
  559. X1382 y Fd(close\()p Ff(FILEHANDLE)p Fd(\))p Fj(*)472 1438 y(Closes)g(the)f
  560. X(\256le)h(or)f(pipe)g(associated)g(with)g(the)g(\256le)h(handle.)354
  561. X1503 y Fd(dbmclose\()p Fi(\045)q Ff(ARRA)m(Y)p Fd(\))p Fj(*)472
  562. X1560 y(Breaks)h(the)e(binding)f(between)h(the)h(array)g(and)f(the)g(dbm)g
  563. X(\256le.)354 1624 y Fd(dbmopen\()p Fi(\045)r Ff(ARRA)m(Y)p
  564. XFd(,)p Ff(DBMNAME)p Fd(,)d Ff(MODE)p Fd(\))472 1681 y Fj(Binds)j(a)h(dbm)f
  565. X(or)g(ndbm)g(\256le)g(to)g(the)h(associative)e(array)m(.)j(If)f(the)f
  566. X(database)h(does)f(not)472 1737 y(exist,)h(it)e(is)h(created)h(with)f(the)g
  567. X(indicated)g(mode.)354 1802 y Fd(eof\()p Ff(FILEHANDLE)p Fd(\))472
  568. X1859 y Fj(Returns)h(1)f(if)g(the)h(next)f(read)h(will)e(return)i(end)f(of)g
  569. X(\256le,)i(or)e(if)g(the)h(\256le)f(is)g(not)g(open.)354 1923
  570. Xy Fd(eof)56 b Fj(Returns)12 b(the)f(eof)h(status)e(for)i(the)f(last)g(\256le)
  571. Xh(read.)354 1988 y Fd(eof\()g(\))472 2045 y Fj(Indicates)g(eof)f(on)h(the)f
  572. X(pseudo)f(\256le)i(formed)g(of)f(the)g(\256les)h(listed)e(on)h(the)g(command)
  573. X472 2101 y(line.)354 2166 y Fd(fcntl\()p Ff(FILEHANDLE)p Fd(,)p
  574. XFf(FUNCTION)p Fd(,)p Fi($)o Ff(V)m(AR)p Fd(\))472 2222 y Fj(Implements)f(the)
  575. Xi Fc(fcntl)p Fj(\(2\))f(function.)g(This)f(function)h(has)g(non-standard)g
  576. X(return)472 2279 y(values.)h(See)g(the)g(manual)e(for)i(details.)354
  577. X2343 y Fd(\256leno\()p Ff(FILEHANDLE)p Fd(\))p Fj(*)472 2400
  578. Xy(Returns)g(the)f(\256le)h(descriptor)f(for)h(a)f(given)g(\(open\))h(\256le.)
  579. X354 2465 y Fd(\257ock\()p Ff(FILEHANDLE)p Fd(,)p Ff(OPERA)m(TION)p
  580. XFd(\))472 2521 y Fj(Calls)f Fc(\257ock)q Fj(\(2\))g(on)g(the)g(\256le.)g
  581. XFf(OPERA)m(TION)g Fj(adds)f(from)h(1)g(\(shared\),)g(2)g(\(exclusive\),)g(4)
  582. X472 2578 y(\(non-blocking\))g(or)g(8)g(\(unlock\).)354 2642
  583. Xy Fd(getc)p Fj([)p Fd(\()p Ff(FILEHANDLE)p Fd(\))p Fj(*])472
  584. X2699 y(Y)m(ields)h(the)f(next)g(character)i(from)e(the)g(\256le,)h(or)g
  585. XFi("")g Fj(on)f(EOF)l(.)h(If)g Ff(FILEHANDLE)f Fj(is)472 2755
  586. Xy(omitted,)g(reads)h(from)f Fi(STDIN)p Fj(.)354 2820 y Fd(ioctl\()p
  587. XFf(FILEHANDLE)p Fd(,)p Ff(FUNCTION)p Fd(,)p Fi($)n Ff(V)m(AR)p
  588. XFd(\))472 2876 y Fj(performs)h Fc(ioctl)p Fj(\(2\))f(on)g(the)g(\256le.)h
  589. X(This)f(function)f(has)i(non-standard)e(return)i(values.)472
  590. X2933 y(See)h(the)e(manual)g(for)h(details.)p 354 3018 1512
  591. X3 v 354 3065 a Fg(9)p eop
  592. X%%Page: 10 12
  593. Xbop 1362 -101 a Fg(Perl)14 b(Reference)f(Guide)p 354 -89 1512
  594. X3 v 354 -12 a Fd(open\()p Ff(FILEHANDLE)p Fj([)p Fd(,)p Ff(FILENAME)p
  595. XFj(])p Fd(\))472 45 y Fj(Opens)f(a)f(\256le)h(and)f(associates)g(it)g(with)g
  596. XFf(FILEHANDLE)p Fj(.)g(If)g Ff(FILENAME)f Fj(is)h(omitted,)472
  597. X101 y(the)h(scalar)g(variable)f(of)h(the)f(same)g(name)g(as)h(the)f
  598. XFf(FILEHANDLE)f Fj(must)h(contain)f(the)472 158 y(\256lename.)472
  599. X222 y(The)i(following)e(\256lename)i(conventions)e(apply)h(when)g(opening)f
  600. X(a)i(\256le.)472 287 y Fi(")p Ff(FILE)p Fi(")95 b Fj(open)11
  601. Xb Ff(FILE)g Fj(for)h(input.)e(Also)h Fi("<)p Ff(FILE)p Fi(")p
  602. XFj(.)472 352 y Fi(">)p Ff(FILE)p Fi(")68 b Fj(open)11 b Ff(FILE)g
  603. XFj(for)h(output,)e(creating)i(it)e(if)i(necessary)m(.)472 417
  604. Xy Fi(">>)p Ff(FILE)p Fi(")41 b Fj(open)11 b Ff(FILE)g Fj(in)g(append)g(mode.)
  605. X472 482 y Fi("+>)p Ff(FILE)p Fi(")41 b Fj(open)11 b Ff(FILE)g
  606. XFj(with)g(read/write)g(access.)472 546 y Fi("|)q Ff(CMD)p Fi(")60
  607. Xb Fj(opens)11 b(a)g(pipe)g(to)g(command)g Ff(CMD)p Fj(.)472
  608. X611 y Fi(")p Ff(CMD)p Fi(|)q(")60 b Fj(opens)11 b(a)g(pipe)g(from)h(command)e
  609. XFf(CMD)p Fj(.)472 676 y Ff(FILE)i Fj(may)f(be)g Fi(&)p Ff(FILEHND)g
  610. XFj(in)g(which)g(case)h(the)g(new)f(\256le)h(handle)f(is)g(connected)g(to)472
  611. X732 y(the)h(\(previously)e(opened\))i(\256lehandle)f Ff(FILEHND)p
  612. XFj(.)472 797 y Fd(open)i Fj(returns)e(1)g(upon)g(success,)h
  613. XFd(undef)g Fj(otherwise,)g(except)f(for)h(pipes.)f(The)472
  614. X853 y(parentheses)h(may)f(be)g(omitted,)g(if)g(only)g(a)g Ff(FILEHANDLE)g
  615. XFj(is)g(speci\256ed.)354 918 y Fd(pipe\()p Ff(READHANDLE)p
  616. XFd(,)p Ff(WRITEHANDLE)p Fd(\))472 975 y Fj(Returns)h(a)g(pair)f(of)g
  617. X(connected)h(pipes.)354 1039 y Fd(print)p Fj([)p Fd(\()p Fj([)p
  618. XFf(FILEHANDLE)p Fj(])p Ff(LIST)p Fe(y)o Fd(\))p Fj(*])472 1096
  619. Xy(Prints)f(a)h(string)f(or)g(a)h(comma-separated)f(list)f(of)i(strings.)e(If)
  620. Xi Ff(FILEHANDLE)f Fj(is)472 1152 y(omitted,)g(prints)f(by)h(default)h(to)e
  621. X(standard)i(output)e(\(or)h(to)g(the)h(last)e(selected)i(output)472
  622. X1209 y(channel)g(-)f(see)h Fd(select)p Fj(\).)354 1274 y Fd(printf)p
  623. XFj([)p Fd(\()p Fj([)p Ff(FILEHANDLE)p Fj(])f Ff(LIST)p Fd(\))p
  624. XFj(*])472 1330 y(Equivalent)g(to)g Fd(print)g Ff(FILEHANDLE)g
  625. XFd(sprintf\()p Ff(LIST)p Fd(\))p Fj(.)354 1395 y Fd(read\()p
  626. XFf(FILEHANDLE)p Fd(,)p Fi($)p Ff(V)m(AR)p Fd(,)p Ff(LENGTH)p
  627. XFj([)p Fd(,)p Ff(OFFSET)p Fj(])p Fd(\))472 1451 y Fj(Read)i
  628. XFf(LENGTH)e Fj(binary)h(bytes)e(from)i(the)f(\256le)h(into)e(the)h(variable)h
  629. X(at)f Ff(OFFSET)p Fj(.)472 1508 y(Returns)h(number)f(of)g(bytes)g(actually)g
  630. X(read.)354 1572 y Fd(seek\()p Ff(FILEHANDLE)p Fd(,)p Ff(POSITION)p
  631. XFd(,)p Ff(WHENCE)p Fd(\))472 1629 y Fj(Arbitrarily)g(positions)f(the)h
  632. X(\256le.)h(Returns)f(1)h(upon)e(success,)i(0)f(otherwise.)354
  633. X1694 y Fd(select)p Fj([)p Fd(\()p Ff(FILEHANDLE)p Fd(\))p Fj(])472
  634. X1750 y(Returns)h(the)f(currently)g(selected)h(\256lehandle.)g(Sets)f(the)h
  635. X(current)f(default)g(\256lehandle)472 1807 y(for)h(output)e(operations)h(if)g
  636. XFf(FILEHANDLE)g Fj(is)g(supplied.)354 1871 y Fd(select\()p
  637. XFf(RBITS)p Fd(,)p Ff(WBITS)p Fd(,)p Ff(NBITS)p Fd(,)o Ff(TIMEOUT)p
  638. XFd(\))472 1928 y Fj(Performs)h(a)g Fc(select)p Fj(\(2\))g(system)e(call)i
  639. X(with)e(the)h(same)h(parameters.)354 1993 y Fd(sprintf\()p
  640. XFf(FORMA)m(T)p Fd(,)p Ff(LIST)p Fd(\))472 2049 y Fj(Returns)g(a)g(string)e
  641. X(formatted)h(by)g(\(almost)f(all)i(of\))f(the)g(usual)g(printf)g
  642. X(conventions.)354 2114 y Fd(sysread\()p Ff(FILEHANDLE)p Fd(,)p
  643. XFi($)p Ff(V)m(AR)p Fd(,)p Ff(LENGTH)p Fj([)p Fd(,)p Ff(OFFSET)p
  644. XFj(])p Fd(\))472 2170 y Fj(Reads)h Ff(LENGTH)g Fj(bytes)f(into)g
  645. XFi($)p Ff(V)m(AR)g Fj(at)g Ff(OFFSET)p Fj(.)354 2235 y Fd(syswrite\()p
  646. XFf(FILEHANDLE)p Fd(,)p Ff(SCALAR)p Fd(,)p Ff(LENGTH)p Fj([)p
  647. XFd(,)p Ff(OFFSET)p Fj(])p Fd(\))472 2291 y Fj(W)n(rites)h Ff(LENGTH)g
  648. XFj(bytes)e(from)i Ff(SCALAR)e Fj(at)h Ff(OFFSET)p Fj(.)354
  649. X2356 y Fd(tell)p Fj([)p Fd(\()p Ff(FILEHANDLE)p Fd(\))p Fj(]*)472
  650. X2413 y(Returns)h(the)f(current)h(\256le)g(position)d(for)j(the)f(\256le.)h
  651. X(If)g Ff(FILEHANDLE)f Fj(is)f(omitted,)472 2469 y(assumes)h(the)g(\256le)h
  652. X(last)f(read.)354 2534 y Fd(write)p Fj([)p Fd(\()p Ff(FILEHANDLE)p
  653. XFd(\))p Fj(]*)472 2590 y(W)n(rites)h(a)f(formatted)g(record)h(to)f(the)h
  654. X(speci\256ed)f(\256le,)i(using)d(the)h(format)g(associated)472
  655. X2647 y(with)g(that)g(\256le.)h(See)g(\252Formats\272.)p 354
  656. X3018 V 1811 3065 a Fg(10)p eop
  657. X%%Page: 11 13
  658. Xbop 354 -101 a Fg(Perl)14 b(Reference)f(Guide)p 354 -89 1512
  659. X3 v 355 -2 a Fl(16.)19 b(Search)i(and)g(replace)f(functions)p
  660. X355 19 1512 2 v 354 119 a Fj([)p Ff(EXPR)11 b Fi(=\304)p Fj(])h([)p
  661. XFd(m)p Fj(])p Fi(/)p Ff(P)m(A)m(TTERN)p Fi(/)p Fj([)p Fd(g)p
  662. XFj(][)p Fd(i)p Fj(][)p Fd(o)p Fj(])472 176 y(Searches)h Ff(EXPR)e
  663. XFj(\(default:)g Fi($_)p Fj(\))h(for)g(a)f(pattern.)h(If)g(you)f(prepend)g(an)
  664. Xh Fd(m)f Fj(you)g(can)h(use)472 232 y(almost)f(any)g(pair)g(of)h(characters)g
  665. X(as)g(delimiters.)e(If)i(used)f(in)g(array)h(context,)g(an)f(array)472
  666. X289 y(is)g(returned)h(consisting)d(of)j(the)f(subexpressions)f(matched)h(by)g
  667. X(the)g(parentheses)h(in)472 345 y(pattern,)g(i.e.)g Fi(\($1,$2,$3)q(,.)q
  668. X(..\))q Fj(.)472 402 y(Optional)f(modi\256ers:)f Fd(g)i Fj(matches)f(as)h
  669. X(many)e(times)h(as)g(possible;)f Fd(i)h Fj(searches)h(in)f(a)472
  670. X458 y(case-insensitive)g(manner;)g Fd(o)h Fj(interpolates)e(variables)i(only)
  671. Xe(once.)472 515 y(If)i Ff(P)m(A)m(TTERN)f Fj(is)g(empty)m(,)g(the)g(most)g
  672. X(recent)h(pattern)f(from)g(a)h(previous)e(match)h(or)472 571
  673. Xy(replacement)h(is)f(used.)472 628 y(W)n(ith)g Fd(g)h Fj(the)f(match)g(can)h
  674. X(be)g(used)f(as)g(an)h(iterator)f(in)g(scalar)h(context.)354
  675. X692 y Fi(?)p Ff(P)m(A)m(TTERN)p Fi(?)472 749 y Fj(This)f(is)g(just)f(like)h
  676. X(the)g Fi(/)p Ff(P)m(A)m(TTERN)p Fi(/)h Fj(search,)h(except)e(that)g(it)g
  677. X(matches)g(only)g(once)472 805 y(between)h(calls)f(to)g(the)g(reset)h
  678. X(operator)m(.)g(If)g Ff(P)m(A)m(TTERN)f Fj(is)g(empty)m(,)g(the)g(most)g
  679. X(recent)472 862 y(pattern)h(from)f(a)h(previous)e(match)h(or)h(replacement)f
  680. X(is)g(used.)354 926 y([)p Fi($)q Ff(V)m(AR)g Fi(=\304)p Fj(])h
  681. XFd(s)p Fi(/)p Ff(P)m(A)m(TTERN)p Fi(/)p Ff(REPLACEMENT)p Fi(/)p
  682. XFj([)p Fd(g)p Fj(][)p Fd(i)p Fj(][)p Fd(e)p Fj(][)p Fd(o)p
  683. XFj(])472 983 y(Searches)h(a)f(string)e(for)i(a)g(pattern,)f(and)h(if)f
  684. X(found,)g(replaces)h(that)f(pattern)g(with)g(the)472 1039 y(replacement)h
  685. X(text)f(and)g(returns)g(the)h(number)f(of)g(substitutions)d(made.)k
  686. X(Otherwise)f(it)472 1096 y(returns)h(false.)472 1152 y(Optional)f
  687. X(modi\256ers:)f Fd(g)i Fj(replaces)g(all)f(occurrences)h(of)g(the)f(pattern;)
  688. Xg Fd(e)g Fj(interprets)g(the)472 1209 y(replacement)h(string)e(as)i(an)f
  689. X(expression;)g Fd(i)g Fj(and)g Fd(o)h Fj(as)f(with)g Fi(/)p
  690. XFf(P)m(A)m(TTERN)p Fi(/)h Fj(matching.)472 1265 y(Almost)e(any)i(delimiter)e
  691. X(may)h(replace)h(the)f(slashes;)g(if)g(single)g(quotes)f(are)j(used,)e(no)472
  692. X1322 y(interpretation)g(is)g(done)g(on)g(the)g(replacement)h(string.)472
  693. X1378 y(If)g(bracketing)f(quotes)g(are)h(used,)g Ff(P)m(A)m(TTERN)f
  694. XFj(and)g Ff(REPLACEMENT)f Fj(may)h(have)472 1434 y(their)h(own)f(delimiters,)
  695. Xf(e.g.)i Fi(s\(foo\)[b)q(ar])q Fj(.)472 1491 y(If)g Ff(P)m(A)m(TTERN)f
  696. XFj(is)g(empty)m(,)g(the)g(most)g(recent)h(pattern)f(from)g(a)h(previous)e
  697. X(match)h(or)472 1547 y(replacement)h(is)f(used.)354 1612 y
  698. XFd(study)p Fj([)p Fd(\()p Fi($)q Ff(V)m(AR)p Fe(y)o Fd(\))p
  699. XFj(*])472 1669 y(Study)g(the)h(contents)e(of)i Fi($)p Ff(V)m(AR)f
  700. XFj(in)g(anticipation)f(of)h(doing)g(many)g(pattern)g(matches)472
  701. X1725 y(on)h(the)f(contents)f(before)i(it)f(is)g(next)g(modi\256ed.)354
  702. X1790 y([)p Fi($)q Ff(V)m(AR)g Fi(=\304)p Fj(])h Fd(tr)p Fi(/)p
  703. XFf(SEARCHLIST)p Fi(/)p Ff(REPLACEMENTLIST)p Fi(/)p Fj([)p Fd(c)p
  704. XFj(][)p Fd(d)p Fj(][)p Fd(s)p Fj(])472 1846 y(T)n(ranslates)g(all)f
  705. X(occurrences)h(of)g(the)f(characters)i(found)e(in)f(the)i(search)g(list)e
  706. X(with)h(the)472 1903 y(corresponding)g(character)i(in)e(the)g(replacement)h
  707. X(list.)e(It)i(returns)f(the)g(number)g(of)472 1959 y(characters)i(replaced.)f
  708. XFd(y)g Fj(may)f(be)g(used)h(instead)e(of)i Fd(tr)p Fj(.)472
  709. X2016 y(Optional)f(modi\256ers:)f Fd(c)i Fj(complements)e(the)h
  710. XFf(SEARCHLIST)p Fj(;)f Fd(d)h Fj(deletes)h(all)472 2072 y(characters)h(not)e
  711. X(found)g(in)g Ff(SEARCHLIST)p Fj(;)e Fd(s)j Fj(squeezes)g(all)f(sequences)g
  712. X(of)472 2129 y(characters)i(that)e(are)h(translated)f(into)f(the)i(same)f
  713. X(tar)o(get)g(character)i(into)e(one)472 2185 y(occurrence)i(of)f(this)e
  714. X(character)m(.)355 2417 y Fl(17.)19 b(System)i(interaction)p
  715. X355 2438 V 354 2539 a Fd(alarm\()p Ff(EXPR)p Fd(\))p Fj(*)472
  716. X2595 y(Schedules)12 b(a)g Fi(SIGALRM)i Fj(to)d(be)g(delivered)h(after)g
  717. XFf(EXPR)e Fj(seconds.)354 2660 y Fd(chdir)i Fj([)p Fd(\()p
  718. XFf(EXPR)p Fd(\))p Fj(*])472 2716 y(Changes)g(the)f(working)g(directory)m(,)h
  719. XFi($ENV{"HOME)q("})j Fj(if)c Ff(EXPR)g Fj(is)f(omitted.)354
  720. X2781 y Fd(chroot\()p Ff(FILENAME)p Fe(y)o Fd(\))p Fj(*)472
  721. X2837 y(Changes)i(the)f(root)g(directory)h(for)f(the)g(process)h(and)f(its)g
  722. X(children.)p 354 3018 1512 3 v 354 3065 a Fg(11)p eop
  723. X%%Page: 12 14
  724. Xbop 1362 -101 a Fg(Perl)14 b(Reference)f(Guide)p 354 -89 1512
  725. X3 v 354 -12 a Fd(die)p Fj([)p Fd(\()p Ff(LIST)p Fd(\))p Fj(*])472
  726. X45 y(Prints)e(the)h(value)f(of)g Ff(LIST)h Fj(to)e Fi(STDERR)k
  727. XFj(and)e(exits)e(with)h(the)g(current)h(value)f(of)h Fi($!)472
  728. X101 y Fj(\(errno\).)h(If)f Fi($!)g Fj(is)f(0,)h(exits)e(with)h(the)g(value)g
  729. X(of)h Fi(\($?)28 b(>>)h(8\))p Fj(.)12 b(If)g Fi(\($?)29 b(>>)f(8\))12
  730. Xb Fj(is)472 158 y(0,)g(exits)f(with)f(255.)i Ff(LIST)f Fj(defaults)g(to)g
  731. XFi("Died.")p Fj(.)354 222 y Fd(exec\()p Ff(LIST)p Fd(\))p Fj(*)472
  732. X279 y(Executes)h(the)f(system)f(command)h(in)g Ff(LIST)p Fj(;)f(does)i(not)e
  733. X(return.)354 344 y Fd(exit\()p Ff(EXPR)p Fd(\))p Fj(*)472 400
  734. Xy(Exits)h(immediately)e(with)i(the)g(value)h(of)f Fi(EXPR)p
  735. XFj(.)354 465 y Fd(fork)40 b Fj(Does)12 b(a)f Fc(fork)q Fj(\(2\))g(system)g
  736. X(call.)g(Returns)h(the)f(child)g(pid)g(to)f(the)i(parent)f(process)h(and)472
  737. X521 y(zero)g(to)f(the)h(child)e(process.)354 586 y Fd(getlogin)472
  738. X643 y Fj(Returns)i(the)f(current)h(login)e(name)h(as)h(known)f(by)g(the)g
  739. X(system.)354 707 y Fd(getpgrp)p Fj([)p Fd(\()p Ff(PID)p Fd(\))p
  740. XFj(*])472 764 y(Returns)h(the)f(process)g(group)g(for)h(process)f
  741. XFf(PID)g Fj(\(0,)h(or)f(omitted,)g(means)g(the)g(current)472
  742. X820 y(process\).)354 885 y Fd(getppid)472 941 y Fj(Returns)h(the)f(process)g
  743. X(id)g(of)h(the)f(parent)h(process.)354 1006 y Fd(getpriority\()p
  744. XFf(WHICH)p Fd(,)p Ff(WHO)p Fd(\))472 1063 y Fj(Returns)g(the)f(current)h
  745. X(priority)e(for)i(a)g(process,)f(process)h(group,)f(or)h(user)m(.)354
  746. X1127 y Fd(kill\()p Ff(LIST)p Fd(\))p Fj(*)472 1184 y(Sends)g(a)g(signal)e(to)
  747. Xh(a)h(list)e(of)h(processes.)h(The)g(\256rst)f(element)g(of)h(the)f(list)f
  748. X(must)g(be)i(the)472 1240 y(signal)f(to)g(send)g(\(numeric,)h(or)f(its)g
  749. X(name)g(as)g(a)h(string\).)354 1305 y Fd(setpgrp\()p Ff(PID)p
  750. XFd(,)p Ff(PGRP)p Fd(\))472 1362 y Fj(Sets)g(the)f(process)h(group)e(for)i
  751. X(the)f Ff(PID)g Fj(\(0)g(=)h(current)f(process\).)354 1426
  752. Xy Fd(setpriority\()p Ff(WHICH)p Fd(,)p Ff(WHO)p Fd(,)p Ff(PRIO)p
  753. XFd(\))472 1483 y Fj(Sets)h(the)f(current)h(priority)e(for)i(a)g(process,)f
  754. X(process)h(group,)f(or)h(a)f(user)m(.)354 1548 y Fd(sleep)p
  755. XFj([)p Fd(\()p Ff(EXPR)p Fd(\))p Fj(*])472 1604 y(Causes)h(the)f(script)g(to)
  756. Xf(sleep)h(for)h Ff(EXPR)e Fj(seconds,)h(or)g(forever)h(if)g(no)e
  757. XFf(EXPR)p Fj(.)h(Returns)472 1660 y(the)h(number)f(of)g(seconds)g(actually)g
  758. X(slept.)354 1725 y Fd(syscall\()p Ff(LIST)p Fd(\))p Fj(*)472
  759. X1782 y(Calls)h(the)f(system)f(call)i(speci\256ed)f(in)g(the)g(\256rst)h
  760. X(element)f(of)g(the)h(list,)e(passing)h(the)g(rest)472 1838
  761. Xy(of)h(the)f(list)f(as)i(ar)o(guments)f(to)g(the)g(call.)354
  762. X1903 y Fd(system\()p Ff(LIST)p Fd(\))p Fj(*)472 1959 y(Does)h(exactly)f(the)g
  763. X(same)g(thing)g(as)g Fd(exec)h Ff(LIST)f Fj(except)h(that)f(a)g(fork)h(is)f
  764. X(done)g(\256rst,)472 2016 y(and)h(the)f(parent)h(process)f(waits)g(for)g(the)
  765. Xh(child)e(process)i(to)f(complete.)354 2081 y Fd(times)472
  766. X2137 y Fj(Returns)h(a)g(4-element)f(array)h(\()p Fi($)p Fj(user)n(,)h
  767. XFi($)p Fj(system,)e Fi($)p Fj(cuser)n(,)h Fi($)q Fj(csystem\))e(giving)h(the)
  768. X472 2193 y(user)h(and)f(system)g(times,)f(in)h(seconds,)h(for)f(this)g
  769. X(process)g(and)g(the)h(children)f(of)g(this)472 2250 y(process.)354
  770. X2315 y Fd(umask)p Fj([)p Fd(\()p Ff(EXPR)p Fd(\))p Fj(*])472
  771. X2371 y(Sets)h(the)f(umask)g(for)g(the)h(process)f(and)g(returns)h(the)f(old)g
  772. X(one.)g(If)h Ff(EXPR)f Fj(is)g(omitted,)472 2428 y(returns)h(current)f(umask)
  773. Xg(value.)354 2492 y Fd(wait)37 b Fj(W)l(aits)12 b(for)f(a)h(child)f(process)g
  774. X(to)g(terminate)g(and)g(returns)h(the)f(pid)g(of)g(the)g(deceased)472
  775. X2549 y(process)h(\(-1)f(if)h(none\).)g(The)f(status)f(is)h(returned)h(in)f
  776. XFi($?)p Fj(.)354 2614 y Fd(waitpid\()p Ff(PID)p Fd(,)p Ff(FLAGS)p
  777. XFd(\))472 2670 y Fj(Performs)h(the)f(same)h(function)e(as)i(the)f
  778. X(corresponding)g(system)f(call.)354 2735 y Fd(warn\()p Ff(LIST)p
  779. XFd(\))p Fj(*)472 2791 y(Prints)h(the)h(message)f(on)g Fi(STDERR)j
  780. XFj(like)d Fd(die)p Fj(,)g(but)g(doesn')o(t)g(exit.)p 354 3018
  781. XV 1811 3065 a Fg(12)p eop
  782. X%%Page: 13 15
  783. Xbop 354 -101 a Fg(Perl)14 b(Reference)f(Guide)p 354 -89 1512
  784. X3 v 355 -2 a Fl(18.)19 b(Networking)p 355 19 1512 2 v 354 119
  785. Xa Fd(accept\()p Ff(NEWSOCKET)p Fd(,)p Ff(GENERICSOCKET)p Fd(\))472
  786. X176 y Fj(Accepts)12 b(a)g(new)f(socket.)354 241 y Fd(bind\()p
  787. XFf(SOCKET)p Fd(,)p Ff(NAME)p Fd(\))472 297 y Fj(Binds)g(the)h
  788. XFf(NAME)e Fj(to)h(the)g Ff(SOCKET)p Fj(.)354 362 y Fd(connect\()p
  789. XFf(SOCKET)p Fd(,)p Ff(NAME)p Fd(\))472 418 y Fj(Connects)h(the)f
  790. XFf(NAME)f Fj(to)h(the)h Ff(SOCKET)p Fj(.)354 483 y Fd(getpeername\()p
  791. XFf(SOCKET)p Fd(\))472 540 y Fj(Returns)g(the)f(socket)g(address)h(of)f(the)g
  792. X(other)g(end)h(of)f(the)h Ff(SOCKET)p Fj(.)354 604 y Fd(getsockname\()p
  793. XFf(SOCKET)p Fd(\))472 661 y Fj(Returns)g(the)f(name)g(of)h(the)f(socket.)354
  794. X725 y Fd(getsockopt\()p Ff(SOCKET)p Fd(,)p Ff(LEVEL)p Fd(,)p
  795. XFf(OPTNAME)p Fd(\))472 782 y Fj(Returns)h(the)f(socket)g(options.)354
  796. X847 y Fd(listen\()p Ff(SOCKET)p Fd(,)p Ff(QUEUESIZE)p Fd(\))472
  797. X903 y Fj(Starts)h(listening)e(on)h(the)g(speci\256ed)h Ff(SOCKET)p
  798. XFj(.)354 968 y Fd(recv\()p Ff(SOCKET)p Fd(,)p Ff(SCALAR)p Fd(,)p
  799. XFf(LENGTH)p Fd(,)p Ff(FLAGS)p Fd(\))472 1024 y Fj(Receives)h(a)e(message)h
  800. X(on)f Ff(SOCKET)p Fj(.)354 1089 y Fd(send\()p Ff(SOCKET)p Fd(,)p
  801. XFf(MSG)p Fd(,)p Ff(FLAGS[)p Fd(,)p Ff(T)o(O)p Fj(])p Fd(\))472
  802. X1146 y Fj(Sends)h(a)g(message)f(on)g(the)g Ff(SOCKET)p Fj(.)354
  803. X1210 y Fd(setsockopt\()p Ff(SOCKET)p Fd(,)p Ff(LEVEL)p Fd(,)p
  804. XFf(OPTNAME)p Fd(,)p Ff(OPTV)m(AL)p Fd(\))472 1267 y Fj(Sets)h(the)f
  805. X(requested)h(socket)f(option.)354 1332 y Fd(shutdown\()p Ff(SOCKET)p
  806. XFd(,)p Ff(HOW)p Fd(\))472 1388 y Fj(Shuts)g(down)g(a)h Ff(SOCKET)p
  807. XFj(.)354 1453 y Fd(socket\()p Ff(SOCKET)p Fd(,)p Ff(DOMAIN)p
  808. XFd(,)p Ff(TYPE)p Fd(,)p Ff(PROT)o(OCOL)p Fd(\))472 1509 y Fj(Creates)h(a)e
  809. XFf(SOCKET)h Fj(in)f Ff(DOMAIN)f Fj(with)h Ff(TYPE)f Fj(and)i
  810. XFf(PROT)o(OCOL)p Fj(.)354 1574 y Fd(socketpair\()p Ff(SOCKET1)p
  811. XFd(,)p Ff(SOCKET2)p Fd(,)p Ff(DOMAIN)p Fd(,)p Ff(TYPE)p Fd(,)p
  812. XFf(PROT)o(OCOL)p Fd(\))472 1630 y Fj(As)g(socket,)f(but)g(creates)h(a)g(pair)
  813. Xf(of)h(bi-directional)e(sockets.)355 1874 y Fl(19.)19 b(SystemV)i(IPC)p
  814. X355 1895 V 354 1995 a Fj(The)12 b(following)e(functions)g(all)h(perform)h
  815. X(the)f(same)g(action)g(as)h(the)f(corresponding)f(system)354
  816. X2052 y(calls.)354 2117 y Fd(msgctl\()p Ff(ID)p Fd(,)p Ff(CMD)p
  817. XFd(,)p Ff(ARGS)p Fd(\))354 2173 y(msgget\()p Ff(KEY)p Fd(,)p
  818. XFf(FLAGS)p Fd(\))354 2230 y(msgsnd\()p Ff(ID)p Fd(,)p Ff(MSG)p
  819. XFd(,)p Ff(FLAGS)p Fd(\))354 2286 y(msgrcv\()p Ff(ID)p Fd(,)p
  820. XFi($)p Ff(V)m(AR)p Fd(,)p Ff(SIZE)p Fd(,)p Ff(TYPE)p Fd(,)p
  821. XFf(FLAGS)p Fd(\))354 2342 y(semctl\()p Ff(ID)p Fd(,)p Ff(SEMNUM)p
  822. XFd(,)p Ff(CM)o(D)p Fd(,)p Ff(A)o(RG)p Fd(\))354 2399 y(semget\()p
  823. XFf(KEY)p Fd(,)p Ff(NSEMS)p Fd(,)p Ff(SI)o(ZE)p Fd(,)p Ff(FLAGS)p
  824. XFd(\))354 2455 y(semop\()p Ff(KEY)p Fd(,)p Fj(...)p Fd(\))354
  825. X2512 y(shmctl\()p Ff(ID)p Fd(,)p Ff(CMD)p Fd(,)p Ff(ARG)p Fd(\))354
  826. X2568 y(shmget\()p Ff(KEY)p Fd(,)p Ff(SIZE)p Fd(,)p Ff(FLAGS)p
  827. XFd(\))354 2625 y(shmread\()p Ff(ID)p Fd(,)p Fi($)q Ff(V)m(AR)p
  828. XFd(,)p Ff(POS)p Fd(,)p Ff(SIZE)p Fd(\))354 2681 y(shmwrite\()p
  829. XFf(ID)p Fd(,)p Ff(STRING)p Fd(,)p Ff(POS)p Fd(,)p Ff(SIZE)p
  830. XFd(\))p 354 3018 1512 3 v 354 3065 a Fg(13)p eop
  831. X%%Page: 14 16
  832. Xbop 1362 -101 a Fg(Perl)14 b(Reference)f(Guide)p 354 -89 1512
  833. X3 v 355 -2 a Fl(20.)19 b(Miscellaneous)p 355 19 1512 2 v 354
  834. X119 a Fd(caller)p Fj([)p Fd(\()p Ff(EXPR)p Fd(\))p Fj(])472
  835. X176 y(Returns)12 b(an)f(array)i(\()p Fi($)p Fj(package,)p Fi($)r
  836. XFj(\256le,)p Fi($)q Fj(line,...\))g(for)e(a)h(speci\256c)g(subroutine)e
  837. X(call.)472 232 y(\252)p Fi(caller)p Fj(\272)15 b(returns)c(this)f(info)h(for)
  838. Xh(the)f(current)h(subroutine,)f(\252)p Fi(caller\(1\))p Fj(\272)k(for)472
  839. X289 y(the)d(caller)f(of)h(this)e(subroutine)h(etc..)354 354
  840. Xy Fd(de\256ned\()p Ff(EXPR)p Fd(\))p Fj(*)472 410 y(T)m(ests)g(whether)h(the)
  841. Xf(lvalue)g Ff(EXPR)f Fj(has)i(a)f(real)h(value.)354 475 y Fd(dump)h
  842. XFj([)p Ff(LABEL)p Fj(])472 531 y(Immediate)e(core)h(dump.)f(When)g
  843. X(reincarnated,)i(starts)e(at)g Ff(LABEL)p Fj(.)354 596 y Fd(local\()p
  844. XFf(LIST)p Fd(\))472 652 y Fj(Creates)i(a)e(scope)h(for)g(the)f(listed)f
  845. X(variables)h(local)h(to)e(the)i(enclosing)e(block,)472 709
  846. Xy(subroutine)h(or)g(eval.)354 774 y Fd(package)i Ff(NAME)472
  847. X830 y Fj(Designates)e(the)g(remainder)h(of)f(the)h(current)f(block)g(as)h(a)f
  848. X(package.)354 895 y Fd(require\()p Ff(EXPR)p Fe(y)o Fd(\))p
  849. XFj(*)472 951 y(Includes)h(the)f(speci\256ed)h(\256le)f(from)g(the)h(perl)f
  850. X(library)m(.)h(Does)f(not)g(include)g(more)g(than)472 1008
  851. Xy(once,)h(and)g(yields)e(a)i(fatal)g(error)g(if)f(the)g(\256le)h(does)f(not)g
  852. X(include)g(OK.)354 1073 y Fd(reset)h Fj([)p Fd(\()p Ff(EXPR)p
  853. XFd(\))p Fj(*])472 1129 y(Resets)g Fi(??)g Fj(searches)g(so)f(that)g(they)g
  854. X(work)h(again.)f Ff(EXPR)g Fj(is)g(a)g(list)g(of)g(single)g(letters.)472
  855. X1185 y(All)g(variables)g(and)h(arrays)g(beginning)e(with)g(one)i(of)f(those)g
  856. X(letters)g(are)h(reset)g(to)f(their)472 1242 y(pristine)g(state.)g(Only)g(af)
  857. Xo(fects)h(the)g(current)f(package.)354 1307 y Fd(scalar\()p
  858. XFf(EXPR)p Fd(\))472 1363 y Fj(Forces)i(evaluation)d(of)i Ff(EXPR)e
  859. XFj(in)h(scalar)h(context.)354 1428 y Fd(sub)h Ff(NAME)d Fi({)i
  860. XFf(EXPR)e Fi(;)i Fj(...)h Fi(})472 1484 y Fj(Designates)e Ff(NAME)g
  861. XFj(as)g(a)h(subroutine.)e(Parameters)j(are)f(passed)f(by)g(reference)i(as)472
  862. X1541 y(array)g Fi(@_)p Fj(.)f(Returns)g(the)f(value)g(of)h(the)f(last)g
  863. X(expression)f(evaluated.)354 1606 y Fd(undef)p Fj([)p Fd(\()p
  864. XFf(L)m(V)m(ALUE)p Fd(\))p Fj(*])472 1662 y(Unde\256nes)i(the)f
  865. XFf(L)m(V)m(ALUE)p Fj(.)g(Always)g(returns)g(the)g(unde\256ned)h(value.)354
  866. X1727 y Fd(wantarray)472 1783 y Fj(Returns)g(true)f(if)h(the)f(current)h
  867. X(context)e(expects)i(an)f(array)i(value.)355 1906 y Fl(21.)19
  868. Xb(Formats)p 355 1927 V 354 2028 a Fd(format)12 b Fj([)p Ff(NAME)p
  869. XFj(])f Fi(=)354 2084 y Ff(FORMLIST)354 2141 y Fi(.)354 2206
  870. Xy Ff(FORMLIST)h Fj(pictures)f(the)g(lines,)g(and)g(contains)g(the)g(ar)o
  871. X(guments)g(which)g(will)f(give)h(values)354 2262 y(to)g(the)g(\256elds)h(in)f
  872. X(the)g(lines.)g(Picture)h(\256elds)f(are:)409 2327 y Fi(@<<<...)69
  873. Xb Fj(left)11 b(adjusted)g(\256eld,)h(repeat)g(the)f Fi(<)h
  874. XFj(to)f(denote)g(the)g(desired)h(width;)409 2383 y Fi(@>>>...)69
  875. Xb Fj(right)11 b(adjusted)f(\256eld;)409 2440 y Fi(@|)q(||)q(...)67
  876. Xb Fj(centered)12 b(\256eld;)409 2496 y Fi(@#.##...)42 b Fj(numeric)11
  877. Xb(format)g(with)g(implied)f(decimal)h(point;)409 2553 y Fi(@*)204
  878. Xb Fj(a)12 b(multi-line)d(\256eld.)354 2617 y(Use)j Fi(\303)g
  879. XFj(instead)e(of)i Fi(@)g Fj(for)f(multi-line)f(block)h(\256lling.)354
  880. X2682 y(Use)h Fi(\304)g Fj(at)f(the)g(beginning)f(of)i(a)f(line)g(to)g
  881. X(suppress)g(unwanted)g(empty)f(lines.)354 2747 y(Use)i Fi(\304\304)g
  882. XFj(at)f(the)h(beginning)e(of)h(a)h(line)f(to)g(have)g(this)g(format)g(line)g
  883. X(repeated)h(until)e(all)h(\256elds)354 2803 y(are)h(exhausted.)354
  884. X2868 y(Use)g Fi($-)g Fj(to)f(zero)h(to)f(force)h(a)g(page)f(break.)354
  885. X2933 y(See)i(also)e Fi($\303)p Fj(,)h Fi($\304)p Fj(,)h Fi($-)f
  886. XFj(and)f Fi($=)i Fj(in)e(section)f(\252Special)j(V)-5 b(ariables\272.)p
  887. X354 3018 1512 3 v 1811 3065 a Fg(14)p eop
  888. X%%Page: 15 17
  889. Xbop 354 -101 a Fg(Perl)14 b(Reference)f(Guide)p 354 -89 1512
  890. X3 v 355 -2 a Fl(22.)19 b(Info)h(from)h(system)g(\256les)p 355
  891. X19 1512 2 v 354 119 a Fj(See)13 b(the)e(manual)g(about)g(return)g(values)g
  892. X(in)g(scalar)h(context.)354 184 y Fg(passwd)354 241 y Fj(Returns)g(\()p
  893. XFi($)p Fj(name,)g Fi($)q Fj(passwd,)f Fi($)p Fj(uid,)g Fi($)q
  894. XFj(gid,)g Fi($)p Fj(quota,)h Fi($)p Fj(comment,)f Fi($)p Fj(gcos,)h
  895. XFi($)p Fj(dir)n(,)g Fi($)p Fj(shell\).)354 305 y Fd(endpwent)517
  896. Xb Fj(Ends)11 b(lookup)f(processing.)354 370 y Fd(getpwent)528
  897. Xb Fj(Gets)11 b(next)g(info.)354 435 y Fd(getpwnam\()p Ff(NAME)p
  898. XFd(\))356 b Fj(Gets)11 b(info)g(by)g(name.)354 500 y Fd(getpwuid\()p
  899. XFf(UID)p Fd(\))428 b Fj(Gets)11 b(info)g(by)g(uid.)354 564
  900. Xy Fd(setpwent)530 b Fj(Resets)12 b(lookup)e(processing.)354
  901. X654 y Fg(group)354 711 y Fj(Returns)i(\()p Fi($)p Fj(name,)g
  902. XFi($)q Fj(passwd,)f Fi($)p Fj(gid,)g Fi($)q Fj(members\).)354
  903. X775 y Fd(endgrent)533 b Fj(Ends)11 b(lookup)f(processing.)354
  904. X840 y Fd(getgrgid\()p Ff(GID)p Fd(\))442 b Fj(Gets)11 b(info)g(by)g(group)g
  905. X(id.)354 905 y Fd(getgrnam\()p Ff(NAME)p Fd(\))372 b Fj(Gets)11
  906. Xb(info)g(by)g(name.)354 970 y Fd(getgrent)544 b Fj(Gets)11
  907. Xb(next)g(info.)354 1034 y Fd(setgrent)546 b Fj(Resets)12 b(lookup)e
  908. X(processing.)354 1124 y Fg(hosts)354 1180 y Fj(Returns)i(\()p
  909. XFi($)p Fj(name,)g Fi($)q Fj(aliases,)f Fi($)p Fj(addrtype,)h
  910. XFi($)p Fj(length,)f(@addrs\).)354 1245 y Fd(endhostent)487
  911. Xb Fj(Ends)11 b(lookup)f(processing.)354 1310 y Fd(gethostbyaddr\()p
  912. XFf(ADDR)p Fd(,)p Ff(ADDR)o(TYPE)p Fd(\))39 b Fj(Gets)11 b(info)g(by)g
  913. X(address.)354 1375 y Fd(gethostbyname\()p Ff(NAME)p Fd(\))255
  914. Xb Fj(Gets)11 b(info)g(by)g(name.)354 1439 y Fd(gethostent)498
  915. Xb Fj(Gets)11 b(next)g(info.)354 1504 y Fd(sethostent\()p Ff(ST)m(A)m(YOPEN)p
  916. XFd(\))251 b Fj(Resets)12 b(lookup)e(processing.)354 1594 y
  917. XFg(networks)354 1650 y Fj(Returns)i(\()p Fi($)p Fj(name,)g
  918. XFi($)q Fj(aliases,)f Fi($)p Fj(addrtype,)h Fi($)p Fj(net\).)354
  919. X1715 y Fd(endnetent)512 b Fj(Ends)11 b(lookup)f(processing.)354
  920. X1780 y Fd(getnetbyaddr\()p Ff(ADDR)p Fd(,)p Ff(TYPE)p Fd(\))181
  921. Xb Fj(Gets)11 b(info)g(by)g(address)h(and)f(type.)354 1845 y
  922. XFd(getnetbyname\()p Ff(NAME)p Fd(\))280 b Fj(Gets)11 b(info)g(by)g(name.)354
  923. X1909 y Fd(getnetent)523 b Fj(Gets)11 b(next)g(info.)354 1974
  924. Xy Fd(setnetent\()p Ff(ST)m(A)m(YOPEN)p Fd(\))276 b Fj(Resets)12
  925. Xb(lookup)e(processing.)354 2064 y Fg(services)354 2120 y Fj(Returns)i(\()p
  926. XFi($)p Fj(name,)g Fi($)q Fj(aliases,)f Fi($)p Fj(port,)h Fi($)p
  927. XFj(proto\).)354 2185 y Fd(endservent)489 b Fj(Ends)11 b(lookup)f(processing.)
  928. X354 2250 y Fd(getservbyname\()p Ff(NAME)p Fd(,)i Ff(PROT)o(O)p
  929. XFd(\))87 b Fj(Gets)11 b(info)g(by)g(name.)354 2315 y Fd(getservbyport\()p
  930. XFf(POR)o(T)p Fd(,)j Ff(PROT)o(O)p Fd(\))120 b Fj(Gets)11 b(info)g(by)g(port.)
  931. X354 2379 y Fd(getservent)500 b Fj(Gets)11 b(next)g(info.)354
  932. X2444 y Fd(setservent\()p Ff(ST)m(A)m(YOPEN)p Fd(\))253 b Fj(Resets)12
  933. Xb(lookup)e(processing.)354 2534 y Fg(protocols)354 2590 y Fj(Returns)i(\()p
  934. XFi($)p Fj(name,)g Fi($)q Fj(aliases,)f Fi($)p Fj(proto\).)354
  935. X2655 y Fd(endprotoent)469 b Fj(Ends)11 b(lookup)f(processing.)354
  936. X2720 y Fd(getprotobyname\()p Ff(NAME)p Fd(\))237 b Fj(Gets)11
  937. Xb(info)g(by)g(name.)354 2784 y Fd(getprotobynumber\()p Ff(NUMBER)p
  938. XFd(\))134 b Fj(Gets)11 b(info)g(by)g(number)m(.)354 2849 y
  939. XFd(getprotoent)480 b Fj(Gets)11 b(next)g(info.)354 2914 y Fd(setprotoent\()p
  940. XFf(ST)m(A)m(YOPEN)p Fd(\))233 b Fj(Resets)12 b(lookup)e(processing.)p
  941. X354 3018 1512 3 v 354 3065 a Fg(15)p eop
  942. X%%Page: 16 18
  943. Xbop 1362 -101 a Fg(Perl)14 b(Reference)f(Guide)p 354 -89 1512
  944. X3 v 355 -2 a Fl(23.)19 b(Regular)i(expressions)p 355 19 1512
  945. X2 v 354 119 a Fj(Each)12 b(character)h(matches)e(itself,)g(unless)g(it)f(is)h
  946. X(one)h(of)f(the)g(special)g(characters)354 176 y Fi(+?.*\(\)[])q({}|)t(\\)p
  947. XFj(.)354 241 y Fi(.)91 b Fj(matches)11 b(an)h(arbitrary)g(character)n(,)h
  948. X(but)e(not)f(a)i(newline.)354 305 y Fi(\()p Fj(.)c(.)g(.)h
  949. XFi(\))21 b Fj(groups)11 b(a)g(series)h(of)f(pattern)g(elements)g(to)g(a)h
  950. X(single)e(element.)354 370 y Fi(+)91 b Fj(matches)11 b(the)h(preceding)f
  951. X(pattern)g(element)g(one)h(or)f(more)g(times.)354 435 y Fi(?)91
  952. Xb Fj(matches)11 b(zero)h(or)g(one)f(times.)354 500 y Fi(*)91
  953. Xb Fj(matches)11 b(zero)h(or)g(more)f(times.)354 564 y Fi({)q
  954. XFf(N)p Fi(,)p Ff(M)p Fi(})21 b Fj(denotes)11 b(the)g(minimum)e
  955. XFf(N)i Fj(and)h(maximum)d Ff(M)i Fj(match)g(count.)h Fi({)p
  956. XFf(N)p Fi(})g Fj(means)472 621 y(exactly)g Ff(N)f Fj(times;)f
  957. XFi({)p Ff(N)p Fi(,})j Fj(means)e(at)g(least)g Ff(N)h Fj(times.)354
  958. X686 y Fi([)p Fj(.)c(.)g(.)h Fi(])21 b Fj(denotes)11 b(a)g(class)h(of)f
  959. X(characters)i(to)e(match.)g Fi([\303)q Fj(.)d(.)g(.)g Fi(])k
  960. XFj(negates)f(the)g(class.)354 750 y Fi(\()p Fj(.)d(.)g(.)h
  961. XFi(|)p Fj(.)f(.)g(.)g Fi(|)p Fj(.)g(.)g(.)g Fi(\))22 b Fj(matches)11
  962. Xb(one)g(of)g(the)h(alternatives.)354 815 y(Non-alphanumerics)f(can)h(be)f
  963. X(escaped)h(from)f(their)g(special)h(meaning)e(using)h(a)g Fi(\\)p
  964. XFj(.)354 880 y Fi(\\w)64 b Fj(matches)11 b(alphanumeric,)h(including)e(\252)p
  965. XFi(_)p Fj(\272,)j Fi(\\W)f Fj(matches)f(non-alphanumeric.)354
  966. X945 y Fi(\\b)64 b Fj(matches)11 b(word)h(boundaries,)f Fi(\\B)h
  967. XFj(matches)f(non-boundaries.)354 1009 y Fi(\\s)64 b Fj(matches)11
  968. Xb(whitespace,)h Fi(\\S)g Fj(matches)f(non-whitespace.)354 1074
  969. Xy Fi(\\d)64 b Fj(matches)11 b(numeric,)h Fi(\\D)g Fj(matches)f(non-numeric.)
  970. X354 1139 y Fi(\\n)p Fj(,)i Fi(\\r)p Fj(,)g Fi(\\f)p Fj(,)f
  971. XFi(\\t)g Fj(etc.)22 b(have)11 b(their)h(usual)e(meaning.)354
  972. X1204 y Fi(\\w)p Fj(,)j Fi(\\s)f Fj(and)g Fi(\\d)21 b Fj(may)11
  973. Xb(be)h(used)f(within)f(character)j(classes,)e Fi(\\b)h Fj(denotes)f
  974. X(backspace)h(in)472 1260 y(this)f(context.)354 1325 y Fi(\\1)p
  975. XFj(.)d(.)g(.)h Fi(\\9)22 b Fj(refer)12 b(to)f(matched)g(sub-expressions,)g
  976. X(grouped)g(with)f Fi(\(\))p Fj(,)j(inside)e(the)g(match.)354
  977. X1390 y Fi(\\10)37 b Fj(and)12 b(up)f(can)h(also)f(be)g(used)g(if)h(the)f
  978. X(pattern)g(matches)g(that)g(many)g(sub-expressions.)354 1454
  979. Xy(See)i(also)e Fi($1)p Fj(.)d(.)g(.)g Fi($9)p Fj(,)13 b Fi($+)p
  980. XFj(,)g Fi($&)p Fj(,)f Fi($`)h Fj(and)e Fi($')h Fj(in)f(section)g(\252Special)
  981. Xh(V)-5 b(ariables\272.)355 1578 y Fl(24.)19 b(Special)h(variables)p
  982. X355 1599 V 354 1699 a Fj(The)12 b(following)e(variables)h(are)h(global)f(and)
  983. Xg(should)f(be)i(localized)f(in)g(subroutines:)354 1764 y Fi($_)64
  984. Xb Fj(The)12 b(default)f(input)f(and)i(pattern-searching)f(space.)354
  985. X1829 y Fi($.)64 b Fj(The)12 b(current)g(input)e(line)h(number)g(of)g(the)g
  986. X(last)g(\256lehandle)h(that)f(was)g(read.)354 1893 y Fi($/)64
  987. Xb Fj(The)12 b(input)e(record)i(separator)n(,)h(newline)e(by)g(default.)g(May)
  988. Xg(be)h(multi-character)m(.)354 1958 y Fi($,)64 b Fj(The)12
  989. Xb(output)e(\256eld)i(separator)f(for)h(the)f(print)g(operator)m(.)354
  990. X2023 y Fi($")64 b Fj(The)12 b(separator)g(which)f(joins)f(elements)h(of)g
  991. X(arrays)h(interpolated)f(in)g(strings.)354 2088 y Fi($\\)64
  992. Xb Fj(The)12 b(output)e(record)i(separator)g(for)f(the)h(print)e(operator)m(.)
  993. X354 2152 y Fi($#)64 b Fj(The)12 b(output)e(format)h(for)h(printed)f(numbers.)
  994. Xg(Initial)f(value)h(is)g(\252)p Fi(\045.20g)p Fj(\272.)354
  995. X2217 y Fi($*)64 b Fj(Set)12 b(to)f(1)g(to)g(do)g(multiline)f(matching)g
  996. X(within)g(a)i(string,)f(0)g(to)g(assume)g(strings)f(contain)472
  997. X2274 y(a)i(single)f(line.)g(Default)g(is)g(0.)354 2338 y Fi($?)64
  998. Xb Fj(The)12 b(status)e(returned)i(by)f(the)g(last)g Fi(`)p
  999. XFf(COMMAND)p Fi(`)p Fj(,)h(pipe)f(close)g(or)g Fd(system)472
  1000. X2395 y Fj(operator)m(.)354 2460 y Fi($])64 b Fj(The)12 b(perl)f(version)g
  1001. X(string)g(\(as)g(displayed)g(with)f Fi(perl)29 b(-v)p Fj(\),)13
  1002. Xb(or)f(version)e(number)m(.)354 2524 y Fi($[)64 b Fj(The)12
  1003. Xb(index)f(of)g(the)g(\256rst)h(element)f(in)g(an)g(array)m(,)i(and)e(of)h
  1004. X(the)f(\256rst)g(character)i(in)e(a)472 2581 y(substring.)g(Default)g(is)g
  1005. X(0.)354 2646 y Fi($;)64 b Fj(The)12 b(subscript)e(separator)i(for)g
  1006. X(multi-dimensional)c(array)k(emulation.)f(Default)g(is)472
  1007. X2702 y Fi("\\034")p Fj(.)354 2767 y Fi($!)64 b Fj(If)12 b(used)f(in)g(a)h
  1008. X(numeric)f(context,)g(yields)g(the)g(current)h(value)f(of)h(errno.)g(If)g
  1009. X(used)f(in)g(a)472 2823 y(string)g(context,)g(yields)g(the)g(corresponding)g
  1010. X(error)h(string.)354 2888 y Fi($@)64 b Fj(The)12 b(perl)f(error)h(message)g
  1011. X(from)f(the)g(last)g(eval)g(or)h Fd(do)g Ff(EXPR)e Fj(command.)p
  1012. X354 3018 1512 3 v 1811 3065 a Fg(16)p eop
  1013. X%%Page: 17 19
  1014. Xbop 354 -101 a Fg(Perl)14 b(Reference)f(Guide)p 354 -89 1512
  1015. X3 v 354 -12 a Fi($:)64 b Fj(The)12 b(set)f(of)g(characters)i(after)f(which)f
  1016. X(a)h(string)e(may)h(be)h(broken)f(to)g(\256ll)g(continuation)472
  1017. X45 y(\256elds)h(\(starting)e(with)h(\252)p Fi(\303)p Fj(\272\))i(in)e(a)g
  1018. X(format.)354 110 y Fi($0)64 b Fj(The)12 b(name)f(of)h(the)f(\256le)h
  1019. X(containing)e(the)h(perl)g(script)g(being)g(executed.)h(May)f(be)472
  1020. X166 y(assigned)g(to.)354 231 y Fi($$)64 b Fj(The)12 b(process)f(number)g(of)h
  1021. X(the)f(perl)g(running)g(this)f(script.)h(Altered)h(\(in)f(the)g(child)472
  1022. X287 y(process\))h(by)f Fd(fork)p Fj(.)354 352 y Fi($<)64 b
  1023. XFj(The)12 b(real)g(uid)e(of)i(this)e(process.)354 417 y Fi($>)64
  1024. Xb Fj(The)12 b(ef)o(fective)g(uid)f(of)g(this)g(process.)354
  1025. X482 y Fi($\()64 b Fj(The)12 b(real)g(gid)e(of)i(this)e(process.)354
  1026. X546 y Fi($\))64 b Fj(The)12 b(ef)o(fective)g(gid)f(of)g(this)g(process.)354
  1027. X611 y Fi($\303D)37 b Fj(The)12 b(debug)f(\257ags)h(as)f(passed)g(to)g(perl)h
  1028. X(using)e Fi(-D)i Fj(.)354 676 y Fi($\303F)37 b Fj(The)12 b(highest)e(system)g
  1029. X(\256le)i(descriptor)n(,)g(ordinarily)e(2.)354 741 y Fi($\303I)37
  1030. Xb Fj(In-place)12 b(edit)f(extension)g(as)g(passed)g(to)g(perl)h(using)e
  1031. XFi(-i)i Fj(.)354 805 y Fi($\303L)37 b Fj(Formfeed)12 b(character)h(used)e(in)
  1032. Xg(formats.)354 870 y Fi($\303P)37 b Fj(Internal)12 b(debugging)e(\257ag.)354
  1033. X935 y Fi($\303T)37 b Fj(The)12 b(time)e(\(as)i(delivered)f(by)h
  1034. XFd(time)p Fj(\))e(when)i(the)f(program)g(started.)h(This)e(value)i(is)472
  1035. X991 y(used)g(by)f(the)g(\256le)h(test)e(operators)i(\252)p
  1036. XFi(-M)p Fj(\272,)h(\252)p Fi(-A)p Fj(\272)g(and)e(\252)p Fi(-C)p
  1037. XFj(\272.)354 1056 y Fi($\303W)37 b Fj(The)12 b(value)f(if)g(the)h
  1038. XFi(-w)g Fj(option)e(as)i(passed)f(to)g(perl.)354 1121 y Fi($\303X)37
  1039. Xb Fj(The)12 b(name)f(by)g(which)g(this)g(perl)g(was)h(invoked.)354
  1040. X1186 y(The)g(following)e(variables)h(are)h(context)f(dependent)g(and)g(need)h
  1041. X(not)f(be)g(localized:)354 1250 y Fi($\045)64 b Fj(The)12 b(current)g(page)f
  1042. X(number)g(of)h(the)f(currently)g(selected)h(output)e(channel.)354
  1043. X1315 y Fi($=)64 b Fj(The)12 b(page)f(length)g(of)h(the)f(current)g(output)g
  1044. X(channel.)g(Default)h(is)f(60)g(lines.)354 1380 y Fi($-)64
  1045. Xb Fj(The)12 b(number)f(of)g(lines)g(left)g(on)g(the)g(page.)354
  1046. X1445 y Fi($\304)64 b Fj(The)12 b(name)f(of)h(the)f(current)h(report)f
  1047. X(format.)354 1509 y Fi($\303)64 b Fj(The)12 b(name)f(of)h(the)f(current)h
  1048. X(top-of-page)f(format.)354 1574 y Fi($|)64 b Fj(If)12 b(set)f(to)g(nonzero,)h
  1049. X(forces)g(a)g(\257ush)f(after)h(every)g(write)f(or)h(print)e(on)h(the)h
  1050. X(currently)472 1631 y(selected)g(output)e(channel.)i(Default)f(is)g(0.)354
  1051. X1695 y Fi($ARGV)23 b Fj(The)11 b(name)h(of)f(the)g(current)h(\256le)g(when)f
  1052. X(reading)h(from)f Fi(<>)h Fj(.)354 1760 y(The)g(following)e(variables)h(are)h
  1053. X(always)f(local)h(to)f(the)g(current)g(block:)354 1825 y Fi($&)64
  1054. Xb Fj(The)12 b(string)e(matched)h(by)g(the)h(last)f(successful)g(pattern)g
  1055. X(match.)354 1890 y Fi($`)64 b Fj(The)12 b(string)e(preceding)i(what)f(was)g
  1056. X(matched)g(by)h(the)f(last)g(successful)g(match.)354 1954 y
  1057. XFi($')64 b Fj(The)12 b(string)e(following)g(what)h(was)h(matched)f(by)g(the)g
  1058. X(last)g(successful)g(match.)354 2019 y Fi($+)64 b Fj(The)12
  1059. Xb(last)f(bracket)h(matched)f(by)g(the)g(last)g(search)h(pattern.)354
  1060. X2084 y Fi($)q(1)p Fj(.)c(.)g(.)g Fi($9)p Fj(.)g(.)g(.)472 2140
  1061. Xy(Contains)j(the)g(subpattern)f(from)h(the)g(corresponding)g(set)g(of)g
  1062. X(parentheses)g(in)g(the)g(last)472 2197 y(pattern)h(successfully)e(matched.)i
  1063. XFi($10)p Fj(.)c(.)g(.)h(and)i(up)g(are)i(only)d(available)h(if)h(the)f(match)
  1064. X472 2253 y(contained)g(that)g(many)g(sub-expressions.)355 2376
  1065. Xy Fl(25.)19 b(Special)h(arrays)p 355 2397 1512 2 v 354 2498
  1066. Xa Fi(@ARGV)42 b Fj(Contains)11 b(the)h(command)e(line)h(ar)o(guments)g(for)g
  1067. X(the)h(script)e(\(not)h(including)f(the)531 2554 y(command)h(name\).)354
  1068. X2619 y Fi(@INC)69 b Fj(Contains)11 b(the)h(list)e(of)h(places)h(to)f(look)f
  1069. X(for)i(perl)f(scripts)g(to)g(be)g(evaluated)h(by)f(the)531
  1070. X2676 y Fd(do)i Ff(FILENAME)d Fj(and)h Fd(require)h Fj(commands.)354
  1071. X2740 y Fi(@_)123 b Fj(Parameter)11 b(array)g(for)f(subroutines.)f(Also)g
  1072. X(used)h(by)f Fd(split)g Fj(if)h(not)f(in)h(array)g(context.)354
  1073. X2805 y Fi(\045ENV)69 b Fj(Contains)11 b(the)h(current)f(environment.)354
  1074. X2870 y Fi(\045INC)69 b Fj(List)11 b(of)g(\256les)h(that)f(have)g(been)h
  1075. XFd(require)p Fj(d)g(or)g Fd(do)p Fj(ne.)354 2935 y Fi(\045SIG)69
  1076. Xb Fj(Used)12 b(to)f(set)g(signal)f(handlers)h(for)h(various)f(signals.)p
  1077. X354 3018 1512 3 v 354 3065 a Fg(17)p eop
  1078. X%%Page: 18 20
  1079. Xbop 1362 -101 a Fg(Perl)14 b(Reference)f(Guide)p 354 -89 1512
  1080. X3 v 355 -2 a Fl(26.)19 b(The)i(perl)f(debugger)p 355 19 1512
  1081. X2 v 354 119 a Fj(The)12 b(perl)f(symbolic)f(debugger)h(is)g(invoked)g(with)f
  1082. XFi(perl)29 b(-d)p Fj(.)354 184 y Fi(h)269 b Fj(Prints)11 b(out)f(a)i(help)f
  1083. X(message.)354 249 y Fi(T)269 b Fj(Stack)11 b(trace.)354 314
  1084. Xy Fi(s)269 b Fj(Single)11 b(steps.)354 378 y Fi(n)269 b Fj(Single)11
  1085. Xb(steps)f(around)i(subroutine)e(call.)354 443 y Fi(r)269 b
  1086. XFj(Returns)11 b(from)g(the)g(current)h(subroutine.)354 508
  1087. Xy Fi(c)g Fj([)p Ff(LINE)p Fj(])134 b(Continues)10 b(\(until)h
  1088. XFf(LINE)p Fj(,)g(or)g(another)h(breakpoint)e(or)i(exit\).)p
  1089. X354 530 112 2 v 354 585 2 56 v 368 573 a Ff(RET)p 464 585 V
  1090. X354 587 112 2 v 199 w Fj(Repeats)g(last)e Fi(s)i Fj(or)g Fi(n)p
  1091. XFj(.)354 637 y Fi(l)g Fj([)p Ff(RANGE)p Fj(])79 b(Lists)10
  1092. Xb(a)i(range)f(of)h(lines.)f Ff(RANGE)g Fj(may)g(be)g(a)h(number)n(,)g
  1093. X(start-end,)650 694 y(start+amount,)e(or)h(a)h(subroutine)e(name.)i(If)g
  1094. X(omitted,)e(lists)g(next)h(window)m(.)354 759 y Fi(f)h Ff(FILE)169
  1095. Xb Fj(Switches)11 b(to)g Ff(FILE)g Fj(and)g(start)g(listing)f(it.)354
  1096. X823 y Fi(-)269 b Fj(Lists)10 b(previous)h(window)m(.)354 888
  1097. Xy Fi(w)269 b Fj(Lists)10 b(window)g(around)i(current)f(line.)354
  1098. X953 y Fi(l)h Ff(SUB)171 b Fj(Lists)10 b(the)h(named)g Ff(SUB)p
  1099. XFj(routine.)354 1018 y Fi(/)p Ff(P)m(A)m(TTERN)p Fi(/)54 b
  1100. XFj(Forward)12 b(search)g(for)f Ff(P)m(A)m(TTERN)p Fj(.)354
  1101. X1082 y Fi(?)p Ff(P)m(A)m(TTERN)p Fi(?)54 b Fj(Backward)12 b(search)g(for)g
  1102. XFf(P)m(A)m(TTERN)p Fj(.)354 1147 y Fi(L)269 b Fj(Lists)10 b(lines)h(that)f
  1103. X(have)i(breakpoints)f(or)g(actions.)354 1212 y Fi(S)269 b Fj(List)10
  1104. Xb(the)h(names)g(of)h(all)f(subroutines.)354 1277 y Fi(t)269
  1105. Xb Fj(T)m(oggles)10 b(trace)i(mode.)354 1342 y Fi(b)g Fj([)p
  1106. XFf(LINE)f Fj([)p Ff(CONDITION)p Fj(]])650 1398 y(Sets)g(breakpoint)g(at)g
  1107. XFf(LINE)p Fj(,)g(default:)g(current)h(line.)354 1463 y Fi(b)g
  1108. XFf(SUBNAME)e Fj([)p Ff(CONDITION)p Fj(])650 1519 y(Sets)h(breakpoint)g(at)g
  1109. X(the)g(subroutine.)354 1584 y Fi(S)269 b Fj(Lists)10 b(names)h(of)g(all)g
  1110. X(subroutines.)354 1649 y Fi(d)h Fj([)p Ff(LINE)p Fj(])134 b(Deletes)11
  1111. Xb(breakpoint)g(at)g(the)g(given)g(line.)354 1713 y Fi(D)269
  1112. Xb Fj(Deletes)11 b(all)g(breakpoints.)354 1778 y Fi(a)h Ff(LINE)f(COMMAND)650
  1113. X1835 y Fj(Sets)g(an)h(action)f(for)g(line.)354 1899 y Fi(A)269
  1114. Xb Fj(Deletes)11 b(all)g(line)g(actions.)354 1964 y Fi(<)h Ff(COMMAND)37
  1115. Xb Fj(Sets)11 b(an)h(action)f(to)g(be)g(executed)h(before)g(every)g(debugger)f
  1116. X(prompt.)354 2029 y Fi(>)h Ff(COMMAND)37 b Fj(Sets)11 b(an)h(action)f(to)g
  1117. X(be)g(executed)h(before)g(every)g Fi(s)p Fj(,)g Fi(c)g Fj(or)f
  1118. XFi(n)h Fj(command.)354 2094 y Fi(V)g Fj([)p Ff(P)m(ACKAGE)e
  1119. XFj([)p Ff(V)m(ARS)p Fj(])h(])650 2150 y(Lists)f(all)h(variables)g(in)g(a)h
  1120. X(package.)g(Default)g(package)g(is)e(main.)354 2215 y Fi(X)i
  1121. XFj([)p Ff(V)m(ARS)p Fj(])116 b(Like)11 b Fi(V)p Fj(,)h(but)f(assumes)f
  1122. X(current)i(package.)354 2280 y Fi(!)g Fj([)g([-])p Ff(NUMBER)p
  1123. XFj(])650 2336 y(Redo)f(a)h(debugging)e(command.)h(Default)h(is)e(previous)h
  1124. X(command.)354 2401 y Fi(H)h Fj([-)p Ff(NUMBER)p Fj(])31 b(Displays)10
  1125. Xb(the)h(last)g(-)p Ff(NUMBER)f Fj(commands)h(of)g(more)g(than)g(one)h(letter)
  1126. Xm(.)354 2466 y Fi(q)269 b Fj(Quits.)10 b(Y)-5 b(ou)12 b(may)f(also)g(use)g
  1127. X(your)p 1199 2423 114 2 v 1199 2479 2 57 v 25 w Ff(EOF)p 1311
  1128. X2479 V 1199 2481 114 2 v 26 w Fj(character)m(.)354 2530 y Ff(COMMAND)76
  1129. Xb Fj(Executes)11 b Ff(COMMAND)f Fj(as)i(a)f(perl)h(statement.)354
  1130. X2595 y Fi(p)g Ff(EXPR)p Fe(y)122 b Fj(Prints)11 b Ff(EXPR)p
  1131. XFj(.)354 2660 y Fi(=)h Fj([)p Ff(ALIAS)f(V)m(ALUE)p Fj(])650
  1132. X2716 y(Sets)g(alias,)h(or)f(lists)f(current)i(aliases.)p 354
  1133. X3018 1512 3 v 1811 3065 a Fg(18)p eop
  1134. X%%Page: 19 21
  1135. Xbop 354 -101 a Fg(Perl)14 b(Reference)f(Guide)p 354 -89 1512
  1136. X3 v 355 -2 a Fl(27.)19 b(Environment)i(variables)p 355 19 1512
  1137. X2 v 354 119 a Fj(Perl)12 b(uses)f(the)h(following)e(environment)g(variables.)
  1138. X354 184 y Fi(HOME)69 b Fj(Used)12 b(if)f Fd(chdir)h Fj(has)f(no)g(ar)o
  1139. X(gument.)354 249 y Fi(LOGDIR)531 305 y Fj(Used)h(if)f Fd(chdir)h
  1140. XFj(has)f(no)g(ar)o(gument)g(and)h Fi(HOME)h Fj(is)e(not)f(set.)354
  1141. X370 y Fi(PATH)69 b Fj(Used)12 b(in)f(executing)g(subprocesses,)g(and)g(in)g
  1142. X(\256nding)g(the)g(perl)h(script)e(if)i Fi(-S)g Fj(is)531 427
  1143. Xy(used.)354 491 y Fi(PERLLIB)531 548 y Fj(A)g(colon-separated)f(list)g(of)g
  1144. X(directories)g(to)g(look)g(for)g(perl)h(library)f(\256les)h(before)531
  1145. X604 y(looking)e(in)h(the)h(standard)f(library)g(and)g(the)g(current)h
  1146. X(directory)m(.)354 669 y Fi(PERLDB)531 725 y Fj(The)g(command)e(to)h(get)h
  1147. X(the)f(debugger)g(code.)h(Defaults)f(to)531 782 y Fi(require)31
  1148. Xb('perldb.pl)q(')s Fj(.)354 967 y Fl(Notes)p 354 988 V 354
  1149. X2938 a Fj(Perl)12 b(Reference)i(Guide)d(Revision)g(4.036.1)1345
  1150. X2937 y(c)1333 2938 y Fe(\015)p Fj(1989,1993)g(Johan)f(V)m(romans)p
  1151. X354 3018 1512 3 v 354 3065 a Fg(19)p eop
  1152. X%%Trailer
  1153. Xend
  1154. Xuserdict /end-hook known{end-hook}if
  1155. X%%EOF
  1156. END_OF_FILE
  1157.   if test 40782 -ne `wc -c <'refbase.ps.B'`; then
  1158.     echo shar: \"'refbase.ps.B'\" unpacked with wrong size!
  1159.   elif test -f 'refbase.ps.A'; then
  1160.     echo shar: Combining  \"'refbase.ps'\" \(86092 characters\)
  1161.     cat 'refbase.ps.A' 'refbase.ps.B' > 'refbase.ps'
  1162.     if test 86092 -ne `wc -c <'refbase.ps'`; then
  1163.       echo shar: \"'refbase.ps'\" combined with wrong size!
  1164.     else 
  1165.       rm refbase.ps.A refbase.ps.B
  1166.     fi 
  1167.   fi
  1168.   # end of 'refbase.ps.B'
  1169. fi
  1170. echo shar: End of archive 3 \(of 3\).
  1171. cp /dev/null ark3isdone
  1172. MISSING=""
  1173. for I in 1 2 3 ; do
  1174.     if test ! -f ark${I}isdone ; then
  1175.     MISSING="${MISSING} ${I}"
  1176.     fi
  1177. done
  1178. if test "${MISSING}" = "" ; then
  1179.     echo You have unpacked all 3 archives.
  1180.     rm -f ark[1-9]isdone
  1181. else
  1182.     echo You still must unpack the following archives:
  1183.     echo "        " ${MISSING}
  1184. fi
  1185. exit 0
  1186. exit 0 # Just in case...
  1187.