*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->IRIX man pages -> perl (1)              


PERL(1)								       PERL(1)

NAME    [Toc]    [Back]

     perl - Practical Extraction and Report Language

SYNOPSIS    [Toc]    [Back]

     perl [ -sTuU ]	 [ -hv ] [ -V[:configvar] ]
	  [ -cw	] [ -d[:debugger] ] [ -D[number/list] ]
	  [ -pna ] [ -Fpattern ] [ -l[octal] ] [ -0[octal] ]
	  [ -Idir ] [ -m[-]module ] [ -M[-]'module...' ]      [	-P ]
	  [ -S ]      [	-x[dir]	]      [ -i[extension] ]
	  [ -e 'command' ] [ --	] [ programfile	] [ argument ]...

     For ease of access, the Perl manual has been split	up into	a number of

	 perl	     Perl overview (this section)
	 perldelta   Perl changes since	previous version
	 perlfaq     Perl frequently asked questions

	 perldata    Perl data structures
	 perlsyn     Perl syntax
	 perlop	     Perl operators and	precedence
	 perlre	     Perl regular expressions
	 perlrun     Perl execution and	options
	 perlfunc    Perl builtin functions
	 perlvar     Perl predefined variables
	 perlsub     Perl subroutines
	 perlmod     Perl modules: how they work
	 perlmodlib  Perl modules: how to write	and use
	 perlform    Perl formats
	 perllocale  Perl locale support

	 perlref     Perl references
	 perldsc     Perl data structures intro
	 perllol     Perl data structures: lists of lists
	 perltoot    Perl OO tutorial
	 perlobj     Perl objects
	 perltie     Perl objects hidden behind	simple variables
	 perlbot     Perl OO tricks and	examples
	 perlipc     Perl interprocess communication

	 perldebug   Perl debugging
	 perldiag    Perl diagnostic messages
	 perlsec     Perl security
	 perltrap    Perl traps	for the	unwary
	 perlstyle   Perl style	guide

	 perlpod     Perl plain	old documentation
	 perlbook    Perl book information

									Page 1

PERL(1)								       PERL(1)

	 perlembed   Perl ways to embed	perl in	your C or C++ application
	 perlapio    Perl internal IO abstraction interface
	 perlxs	     Perl XS application programming interface
	 perlxstut   Perl XS tutorial
	 perlguts    Perl internal functions for those doing extensions
	 perlcall    Perl calling conventions from C

     (If you're	intending to read these	straight through for the first time,
     the suggested order will tend to reduce the number	of forward

     The above manpages	are installed in the /usr/share/catman/u_man/cat1/

     Extensive additional documentation	for Perl modules is available.	The
     IRIX configuration	of perl	places the documentation for the standard
     modules in	the /usr/share/catman/p_man/cat3/perl5/	directory.  The
     documentation for third-party modules will	by default be installed	into
     the /usr/catman/local/man3/perl5/ directory.  These directories are all
     in	the standard IRIX MANPATH.

     If	something strange has gone wrong with your program and you're not sure
     where you should look for help, try the -w	switch first.  It will often
     point out exactly where the trouble is.

DESCRIPTION    [Toc]    [Back]

     Perl is a language	optimized for scanning arbitrary text files,
     extracting	information from those text files, and printing	reports	based
     on	that information.  It's	also a good language for many system
     management	tasks.	The language is	intended to be practical (easy to use,
     efficient,	complete) rather than beautiful	(tiny, elegant,	minimal).

     Perl combines (in the author's opinion, anyway) some of the best features
     of	C, sed,	awk, and sh, so	people familiar	with those languages should
     have little difficulty with it.  (Language	historians will	also note some
     vestiges of csh, Pascal, and even BASIC-PLUS.)  Expression	syntax
     corresponds quite closely to C expression syntax.	Unlike most Unix
     utilities,	Perl does not arbitrarily limit	the size of your data--if
     you've got	the memory, Perl can slurp in your whole file as a single
     string.  Recursion	is of unlimited	depth.	And the	tables used by hashes
     (previously called	"associative arrays") grow as necessary	to prevent
     degraded performance.  Perl uses sophisticated pattern matching
     techniques	to scan	large amounts of data very quickly.  Although
     optimized for scanning text, Perl can also	deal with binary data, and can
     make dbm files look like hashes.  Setuid Perl scripts are safer than C
     programs through a	dataflow tracing mechanism which prevents many stupid
     security holes.

     If	you have a problem that	would ordinarily use sed or awk	or sh, but it
     exceeds their capabilities	or must	run a little faster, and you don't
     want to write the silly thing in C, then Perl may be for you.  There are
     also translators to turn your sed and awk scripts into Perl scripts.

									Page 2

PERL(1)								       PERL(1)

     But wait, there's more...

     Perl version 5 is nearly a	complete rewrite, and provides the following
     additional	benefits:

     o Many usability enhancements
	  It is	now possible to	write much more	readable Perl code (even
	  within regular expressions).	Formerly cryptic variable names	can be
	  replaced by mnemonic identifiers.  Error messages are	more
	  informative, and the optional	warnings will catch many of the
	  mistakes a novice might make.	 This cannot be	stressed enough.
	  Whenever you get mysterious behavior,	try the	-w switch!!!  Whenever
	  you don't get	mysterious behavior, try using -w anyway.

     o Simplified grammar
	  The new yacc grammar is one half the size of the old one.  Many of
	  the arbitrary	grammar	rules have been	regularized.  The number of
	  reserved words has been cut by 2/3.  Despite this, nearly all	old
	  Perl scripts will continue to	work unchanged.

     o Lexical scoping
	  Perl variables may now be declared within a lexical scope, like
	  "auto" variables in C.  Not only is this more	efficient, but it
	  contributes to better	privacy	for "programming in the	large".
	  Anonymous subroutines	exhibit	deep binding of	lexical	variables

     o Arbitrarily nested data structures
	  Any scalar value, including any array	element, may now contain a
	  reference to any other variable or subroutine.  You can easily
	  create anonymous variables and subroutines.  Perl manages your
	  reference counts for you.

     o Modularity and reusability
	  The Perl library is now defined in terms of modules which can	be
	  easily shared	among various packages.	 A package may choose to
	  import all or	a portion of a module's	published interface.  Pragmas
	  (that	is, compiler directives) are defined and used by the same

     o Object-oriented programming
	  A package can	function as a class.  Dynamic multiple inheritance and
	  virtual methods are supported	in a straightforward manner and	with
	  very little new syntax.  Filehandles may now be treated as objects.

     o Embeddable and Extensible
	  Perl may now be embedded easily in your C or C++ application,	and
	  can either call or be	called by your routines	through	a documented
	  interface.  The XS preprocessor is provided to make it easy to glue
	  your C or C++	routines into Perl.  Dynamic loading of	modules	is
	  supported, and Perl itself can be made into a	dynamic	library.

									Page 3

PERL(1)								       PERL(1)

     o POSIX compliant
	  A major new module is	the POSIX module, which	provides access	to all
	  available POSIX routines and definitions, via	object classes where

     o Package constructors and	destructors
	  The new BEGIN	and END	blocks provide means to	capture	control	as a
	  package is being compiled, and after the program exits.  As a
	  degenerate case they work just like awk's BEGIN and END when you use
	  the -p or -n switches.

     o Multiple	simultaneous DBM implementations
	  A Perl program may now access	DBM, NDBM, SDBM, GDBM, and Berkeley DB
	  files	from the same script simultaneously.  In fact, the old dbmopen
	  interface has	been generalized to allow any variable to be tied to
	  an object class which	defines	its access methods.

     o Subroutine definitions may now be autoloaded
	  In fact, the AUTOLOAD	mechanism also allows you to define any
	  arbitrary semantics for undefined subroutine calls.  It's not	for
	  just autoloading.

     o Regular expression enhancements
	  You can now specify nongreedy	quantifiers.  You can now do grouping
	  without creating a backreference.  You can now write regular
	  expressions with embedded whitespace and comments for	readability.
	  A consistent extensibility mechanism has been	added that is upwardly
	  compatible with all old regular expressions.

     o Innumerable Unbundled Modules
	  The Comprehensive Perl Archive Network described in the perlmodlib
	  manpage contains hundreds of plug-and-play modules full of reusable
	  code.	 See http://www.perl.com/CPAN for a site near you.

     o Compilability
	  While	not yet	in full	production mode, a working perl-to-C compiler
	  does exist.  It can generate portable	byte code, simple C, or
	  optimized C code.

     Okay, that's definitely enough hype.

ENVIRONMENT    [Toc]    [Back]

     See the perlrun manpage.

AUTHOR    [Toc]    [Back]

     Larry Wall	<larry@wall.org>, with the help	of oodles of other folks.

     If	your Perl success stories and testimonials may be of help to others
     who wish to advocate the use of Perl in their applications, or if you
     wish to simply express your gratitude to Larry and	the Perl developers,
     please write to <perl-thanks@perl.org>.

									Page 4

PERL(1)								       PERL(1)

FILES    [Toc]    [Back]

      "/tmp/perl-e$$"	     temporary file for	-e commands
      "@INC"		     locations of perl libraries

SEE ALSO    [Toc]    [Back]

      a2p    awk to perl translator

      s2p    sed to perl translator

DIAGNOSTICS    [Toc]    [Back]

     The -w switch produces some lovely	diagnostics.

     See the perldiag manpage for explanations of all Perl's diagnostics.

     Compilation errors	will tell you the line number of the error, with an
     indication	of the next token or token type	that was to be examined.  (In
     the case of a script passed to Perl via -e	switches, each -e is counted
     as	one line.)

     Setuid scripts have additional constraints	that can produce error
     messages such as "Insecure	dependency".  See the perlsec manpage.

     Did we mention that you should definitely consider	using the -w switch?

IRIX SPECIFICS    [Toc]    [Back]

     Perl is compiled with a shared libperl.so,	which lives in the /usr/lib32
     directory.	It is compiled with 5.003 compatibility	on.

     Perl's standard library installs into /usr/share/lib/perl5/, which	may be
     NFS mounted read-only. In that case, and if you wish to install modules
     locally, you should consider moving the /usr/share/lib/perl5/site_perl/
     directory to some place on	the local disk,	and create a symlink.

     Perl is compiled -n32 -mips3. If you have any compiled modules from an
     older IRIX	release, they are probably compiled -32, and will have to be
     recompiled	before they will work. If your modules use libraries that are
     not available in -n32, then you will need a version of perl compiled to
     that ABI. You cannot link or load objects of different ABI. A version of
     perl compiled -32 is available via	SGI Freeware (CDROM or various Web

     Perl is compiled to use drand48() as Perl's rand()	function, instead of
     the standard, weak	PRNG.

BUGS    [Toc]    [Back]

     The -w switch is not mandatory.

     Perl is at	the mercy of your machine's definitions	of various operations
     such as type casting, atof(), and floating-point output with sprintf().

									Page 5

PERL(1)								       PERL(1)

     If	your stdio requires a seek or eof between reads	and writes on a
     particular	stream,	so does	Perl.  (This doesn't apply to sysread()	and

     While none	of the built-in	data types have	any arbitrary size limits
     (apart from memory	size), there are still a few arbitrary limits:	a
     given variable name may not be longer than	255 characters,	and no
     component of your PATH may	be longer than 255 if you use -S.  A regular
     expression	may not	compile	to more	than 32767 bytes internally.

     You may mail your bug reports (be sure to include full configuration
     information as output by the myconfig program in the perl source tree, or
     by	perl -V) to <perlbug@perl.com>.	 If you've succeeded in	compiling
     perl, the perlbug script in the utils/ subdirectory can be	used to	help
     mail in a bug report.

     Perl actually stands for Pathologically Eclectic Rubbish Lister, but
     don't tell	anyone I said that.

NOTES    [Toc]    [Back]

     The Perl motto is "There's	more than one way to do	it."  Divining how
     many more is left as an exercise to the reader.

     The three principal virtues of a programmer are Laziness, Impatience, and
     Hubris.  See the Camel Book for why.

									Page 6

PERL(1)								       PERL(1)

									PPPPaaaaggggeeee 7777
[ Back ]
 Similar pages
Name OS Title
strextract Tru64 batch string extraction
binex Tru64 Binary event log extraction utility
geocustoms HP-UX configure system language on multi-language systems
iostat HP-UX report I/O statistics
rpcinfo Linux report RPC information
rpcinfo IRIX report RPC information
clock IRIX report CPU time used
iostat FreeBSD report I/O statistics
bashbug Linux report a bug in bash
rpcinfo FreeBSD report RPC information
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service