summaryrefslogtreecommitdiff
path: root/perly.c
Commit message (Collapse)AuthorAgeFilesLines
* perl 3.0: (no announcement message available)perl-3.000Larry Wall1989-10-181-1600/+446
| | | | | | | | | | | | | | A few of the new features: (18 Oct) * Perl can now handle binary data correctly and has functions to pack and unpack binary structures into arrays or lists. You can now do arbitrary ioctl functions. * You can now pass things to subroutines by reference. * Debugger enhancements. * An array or associative array may now appear in a local() list. * Array values may now be interpolated into strings. * Subroutine names are now distinguished by prefixing with &. You can call subroutines without using do, and without passing any argument list at all. * You can use the new -u switch to cause perl to dump core so that you can run undump and produce a binary executable image. Alternately you can use the "dump" operator after initializing any variables and such. * You can now chop lists. * Perl now uses /bin/csh to do filename globbing, if available. This means that filenames with spaces or other strangenesses work right. * New functions: mkdir and rmdir, getppid, getpgrp and setpgrp, getpriority and setpriority, chroot, ioctl and fcntl, flock, readlink, lstat, rindex, pack and unpack, read, warn, dbmopen and dbmclose, dump, reverse, defined, undef.
* perl 2.0 patch 1: removed redundant debugging code in regexp.cLarry Wall1988-06-281-17/+119
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If you used ++ on a variable that had the value '' (as opposed to being undefined) it would increment the numeric part but not invalidate the string part, which could then give false results. Berkeley recently sent out a patch that disables setuid #! scripts because of an inherent problem in the semantics as they are currently defined. If you have installed that patch, your setuid and setgid bits are useless on scripts. I've added a means for perl to examine those bits and emulate setuid/setgid scripts itself in what I believe is a secure manner. If normal perl detects such a script, it passes it off to another version of perl that runs setuid root, and can run the script under the desired uid/gid. This feature is optional, and Configure will ask if you want to do it. Some machines didn't like config.h when it said #/*undef SYMBOL. Config.h.SH now is smart enough to tuck the # inside the comment. There were several small problems in Configure: the return code from ar was hidden by a piped call to sed, so if ar failed it went undetected. The Cray uses a program called bld instead of ar. Let's hear it for compatibilty. At least one version of gnucpp adds a space after symbol interpolation, which was giving the C preprocessor detector fits. There was a call to grep '-i' that needed to have the -i protected by a backslash. Also, Configure should remove the UU subdirectory that it makes while running. "make realclean" now knows about the alternate patch extension ~. In the manual page, I fixed some quotes that were ugly in troff, and did some clarification of LIST, study, tr and unlink. regexp.c had some redundant debugging code. tr/x/y/ could dump core if y is shorter than x. I found this out when I tried translating a bunch of characters to space by saying something like y/a-z/ /.
* perl 2.0 (no announcement message available)perl-2.0Larry Wall1988-06-051-1269/+513
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* perl 1.0 patch 8: perl needed an eval operator and a symbolic debuggerLarry Wall1988-01-271-11/+164
| | | | | | | | | | | I didn't add an eval operator to the original perl because I hadn't thought of any good uses for it. Recently I thought of some. Along with creating the eval operator, this patch introduces a symbolic debugger for perl scripts, which makes use of eval to interpret some debugging commands. Having eval also lets me emulate awk's FOO=bar command line behavior with a line such as the one a2p now inserts at the beginning of translated scripts.
* perl 1.0 patch 2: Various portability fixes.Andrew Burt1988-01-231-2/+5
| | | | Some things didn't work right on System V and Pyramids.
* perl 1.0 patch 1: Portability bugs and one possible SIGSEGVDan Faigin, Doug Landauer1988-01-211-3/+6
| | | | | | | | On some systems the Configure script and C compilations get warning messages that may scare some folks unnecessarily. Also, use of the "redo" command if debugging is compiled in overflows a stack on which the trace context is kept.
* a "replacement" for awk and sedperl-1.0Larry Wall1987-12-181-0/+2460
[ Perl is kind of designed to make awk and sed semi-obsolete. This posting will include the first 10 patches after the main source. The following description is lifted from Larry's manpage. --r$ ] Perl is a interpreted language optimized for scanning arbitrary text files, extracting information from those text files, and printing reports based on that information. It's also a good language for many system management tasks. The language is intended to be practical (easy to use, efficient, complete) rather than beautiful (tiny, elegant, minimal). It combines (in the author's opinion, anyway) some of the best features of C, sed, awk, and sh, so people familiar with those languages should have little difficulty with it. (Language historians will also note some vestiges of csh, Pascal, and even BASIC-PLUS.) Expression syntax corresponds quite closely to C expression syntax. If you have a problem that would ordinarily use sed or awk or sh, but it exceeds their capabilities or must run a little faster, and you don't want to write the silly thing in C, then perl may be for you. There are also translators to turn your sed and awk scripts into perl scripts.