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 /perldb | |
parent | a4de7c03d0bdc29d9d3a18abad4ac2628182ed7b (diff) | |
download | perl-2.0.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 'perldb')
-rw-r--r-- | perldb | 18 |
1 files changed, 10 insertions, 8 deletions
@@ -1,10 +1,10 @@ -#!/bin/perl +#!/usr/bin/perl -# $Header: perldb,v 1.0.1.1 88/01/28 10:27:16 root Exp $ +# $Header: perldb,v 2.0 88/06/05 00:09:45 root Exp $ # # $Log: perldb,v $ -# Revision 1.0.1.1 88/01/28 10:27:16 root -# patch8: created this file. +# Revision 2.0 88/06/05 00:09:45 root +# Baseline version 2.0. # # @@ -25,7 +25,7 @@ open(script,$filename) || die "Can't find $filename"; open(tmp, ">$tmp") || die "Can't make temp script"; -$perl = '/bin/perl'; +$perl = '/usr/bin/perl'; $init = 1; $state = 'statement'; @@ -61,7 +61,8 @@ while (<script>) { $inform++; next; } - if ($state eq 'statement' && !/^[ \t]*}/) { + if ($state eq 'statement' && + !/^[ \t]*}|^[ \t]*else|^[ \t]*continue|^[ \t]*elsif/) { if (s/^([ \t]*[A-Za-z_0-9]+:)//) { $label = $1; } @@ -243,6 +244,7 @@ sub parse { do quote(ord($1),2), next if s/^s\b(.)//; do quote(ord($1),2), next if s/^y\b(.)//; do quote(ord($1),2), next if s/^tr\b(.)//; + do quote($ord,1), next if s/^`//; next if s/^[A-Za-z_][A-Za-z_0-9]*://; $state = 'term', next if s/^eof\b//; $state = 'term', next if s/^shift\b//; @@ -260,7 +262,7 @@ sub parse { die "Illegal character $_"; } elsif ($ord < 33) { - next if s/[ \t\n]+//; + next if s/[ \t\n\f]+//; die "Illegal character $_"; } else { @@ -274,7 +276,7 @@ sub parse { $state = 'term', next if s/^<[A-Za-z_0-9]*>//; next if s/^\+\+//; next if s/^--//; - $state = 'operator', next if s/^[(!%&*-=+:,.<>]//; + $state = 'operator', next if s/^[-(!%&*=+:,.<>]//; $state = 'term', next if s/^\)+//; do quote($ord,1), next if s/^'//; do quote($ord,1), next if s/^"//; |