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 /form.c | |
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 'form.c')
-rw-r--r-- | form.c | 20 |
1 files changed, 9 insertions, 11 deletions
@@ -1,15 +1,12 @@ -/* $Header: form.c,v 1.0 87/12/18 13:05:07 root Exp $ +/* $Header: form.c,v 2.0 88/06/05 00:08:57 root Exp $ * * $Log: form.c,v $ - * Revision 1.0 87/12/18 13:05:07 root - * Initial revision + * Revision 2.0 88/06/05 00:08:57 root + * Baseline version 2.0. * */ -#include "handy.h" #include "EXTERN.h" -#include "search.h" -#include "util.h" #include "perl.h" /* Forms stuff */ @@ -57,7 +54,7 @@ register FCMD *fcmd; orec->o_lines++; break; case F_LEFT: - str = eval(fcmd->f_expr,Null(char***),(double*)0); + str = eval(fcmd->f_expr,Null(STR***),-1); s = str_get(str); size = fcmd->f_size; CHKLEN(size); @@ -101,7 +98,7 @@ register FCMD *fcmd; } break; case F_RIGHT: - t = s = str_get(eval(fcmd->f_expr,Null(char***),(double*)0)); + t = s = str_get(eval(fcmd->f_expr,Null(STR***),-1)); size = fcmd->f_size; CHKLEN(size); chophere = Nullch; @@ -150,7 +147,7 @@ register FCMD *fcmd; case F_CENTER: { int halfsize; - t = s = str_get(eval(fcmd->f_expr,Null(char***),(double*)0)); + t = s = str_get(eval(fcmd->f_expr,Null(STR***),-1)); size = fcmd->f_size; CHKLEN(size); chophere = Nullch; @@ -207,7 +204,7 @@ register FCMD *fcmd; break; } case F_LINES: - str = eval(fcmd->f_expr,Null(char***),(double*)0); + str = eval(fcmd->f_expr,Null(STR***),-1); s = str_get(str); size = str_len(str); CHKLEN(size); @@ -240,7 +237,8 @@ register STIO *stio; #ifdef DEBUGGING if (debug & 256) - fprintf(stderr,"left=%d, todo=%d\n",stio->lines_left, orec->o_lines); + fprintf(stderr,"left=%ld, todo=%ld\n", + (long)stio->lines_left, (long)orec->o_lines); #endif if (stio->lines_left < orec->o_lines) { if (!stio->top_stab) { |