diff options
author | Larry Wall <larry@wall.org> | 1988-06-05 00:00:00 +0000 |
---|---|---|
committer | Larry Wall <larry@wall.org> | 1988-06-05 00:00:00 +0000 |
commit | 378cc40b38293ffc7298c6a7ed3cd740ad79be52 (patch) | |
tree | 87bedf9adc5c88847a2e2d85963df5f94435aaf5 /spat.h | |
parent | a4de7c03d0bdc29d9d3a18abad4ac2628182ed7b (diff) | |
download | perl-378cc40b38293ffc7298c6a7ed3cd740ad79be52.tar.gz |
perl 2.0 (no announcement message available)perl-2.0
Some of the enhancements from Perl1 included:
* New regexp routines derived from Henry Spencer's.
o Support for /(foo|bar)/.
o Support for /(foo)*/ and /(foo)+/.
o \s for whitespace, \S for non-, \d for digit, \D nondigit
* Local variables in blocks, subroutines and evals.
* Recursive subroutine calls are now supported.
* Array values may now be interpolated into lists: unlink 'foo', 'bar', @trashcan, 'tmp';
* File globbing.
* Use of <> in array contexts returns the whole file or glob list.
* New iterator for normal arrays, foreach, that allows both read and write.
* Ability to open pipe to a forked off script for secure pipes in setuid scripts.
* File inclusion via do 'foo.pl';
* More file tests, including -t to see if, for instance, stdin is a terminal. File tests now behave in a more correct manner. You can do file tests on filehandles as well as filenames. The special filetests -T and -B test a file to see if it's text or binary.
* An eof can now be used on each file of the <> input for such purposes as resetting the line numbers or appending to each file of an inplace edit.
* Assignments can now function as lvalues, so you can say things like ($HOST = $host) =~ tr/a-z/A-Z/; ($obj = $src) =~ s/\.c$/.o/;
* You can now do certain file operations with a variable which holds the name of a filehandle, e.g. open(++$incl,$includefilename); $foo = <$incl>;
* Warnings are now available (with -w) on use of uninitialized variables and on identifiers that are mentioned only once, and on reference to various undefined things.
* There is now a wait operator.
* There is now a sort operator.
* The manual is now not lying when it says that perl is generally faster than sed. I hope.
Diffstat (limited to 'spat.h')
-rw-r--r-- | spat.h | 23 |
1 files changed, 12 insertions, 11 deletions
@@ -1,31 +1,32 @@ -/* $Header: spat.h,v 1.0.1.1 88/02/02 11:24:37 root Exp $ +/* $Header: spat.h,v 2.0 88/06/05 00:10:58 root Exp $ * * $Log: spat.h,v $ - * Revision 1.0.1.1 88/02/02 11:24:37 root - * patch13: added flag for stripping leading spaces on split. - * - * Revision 1.0 87/12/18 13:06:10 root - * Initial revision + * Revision 2.0 88/06/05 00:10:58 root + * Baseline version 2.0. * */ struct scanpat { SPAT *spat_next; /* list of all scanpats */ - COMPEX spat_compex; /* compiled expression */ + REGEXP *spat_regexp; /* compiled expression */ ARG *spat_repl; /* replacement string for subst */ ARG *spat_runtime; /* compile pattern at runtime */ - STR *spat_first; /* for a fast bypass of execute() */ + STR *spat_short; /* for a fast bypass of execute() */ bool spat_flags; - char spat_flen; + char spat_slen; }; #define SPAT_USED 1 /* spat has been used once already */ -#define SPAT_USE_ONCE 2 /* use pattern only once per article */ +#define SPAT_ONCE 2 /* use pattern only once per article */ #define SPAT_SCANFIRST 4 /* initial constant not anchored */ -#define SPAT_SCANALL 8 /* initial constant is whole pat */ +#define SPAT_ALL 8 /* initial constant is whole pat */ #define SPAT_SKIPWHITE 16 /* skip leading whitespace for split */ +#define SPAT_FOLD 32 /* case insensitivity */ EXT SPAT *spat_root; /* list of all spats */ EXT SPAT *curspat; /* what to do \ interps from */ +EXT SPAT *lastspat; /* what to use in place of null pattern */ + +EXT char *hint INIT(Nullch); /* hint from cmd_exec to do_match et al */ #define Nullspat Null(SPAT*) |