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 /stab.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 'stab.h')
-rw-r--r-- | stab.h | 20 |
1 files changed, 14 insertions, 6 deletions
@@ -1,8 +1,8 @@ -/* $Header: stab.h,v 1.0 87/12/18 13:06:18 root Exp $ +/* $Header: stab.h,v 2.0 88/06/05 00:11:05 root Exp $ * * $Log: stab.h,v $ - * Revision 1.0 87/12/18 13:06:18 root - * Initial revision + * Revision 2.0 88/06/05 00:11:05 root + * Baseline version 2.0. * */ @@ -14,11 +14,12 @@ struct stab { FCMD *stab_form; ARRAY *stab_array; HASH *stab_hash; - CMD *stab_sub; + SUBR *stab_sub; char stab_flags; }; #define SF_VMAGIC 1 /* call routine to dereference STR val */ +#define SF_MULTI 2 /* seen more than once */ struct stio { FILE *fp; @@ -30,6 +31,7 @@ struct stio { STAB *top_stab; char *fmt_name; STAB *fmt_stab; + short subprocess; char type; char flags; }; @@ -38,6 +40,13 @@ struct stio { #define IOF_START 2 /* check for null ARGV and substitute '-' */ #define IOF_FLUSH 4 /* this fp wants a flush after write op */ +struct sub { + CMD *cmd; + char *filename; + long depth; /* >= 2 indicates recursive call */ + ARRAY *tosave; +}; + #define Nullstab Null(STAB*) #define STAB_STR(s) (tmpstab = (s), tmpstab->stab_flags & SF_VMAGIC ? stab_str(tmpstab) : tmpstab->stab_val) @@ -51,8 +60,7 @@ EXT STAB *stab_index[128]; EXT char *envname; /* place for ENV name being assigned--gross cheat */ EXT char *signame; /* place for SIG name being assigned--gross cheat */ -EXT int statusvalue; -EXT int subsvalue; +EXT unsigned short statusvalue; STAB *aadd(); STAB *hadd(); |