summaryrefslogtreecommitdiff
path: root/perldb
diff options
context:
space:
mode:
authorLarry Wall <larry@wall.org>1988-06-05 00:00:00 +0000
committerLarry Wall <larry@wall.org>1988-06-05 00:00:00 +0000
commit378cc40b38293ffc7298c6a7ed3cd740ad79be52 (patch)
tree87bedf9adc5c88847a2e2d85963df5f94435aaf5 /perldb
parenta4de7c03d0bdc29d9d3a18abad4ac2628182ed7b (diff)
downloadperl-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--perldb18
1 files changed, 10 insertions, 8 deletions
diff --git a/perldb b/perldb
index d548f7299d..9f03a7651a 100644
--- a/perldb
+++ b/perldb
@@ -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/^"//;