summaryrefslogtreecommitdiff
path: root/eg
diff options
context:
space:
mode:
authorLarry Wall <lwall@jpl-devvax.jpl.nasa.gov>1990-03-12 04:09:28 +0000
committerLarry Wall <lwall@jpl-devvax.jpl.nasa.gov>1990-03-12 04:09:28 +0000
commitff2452de34aca0717369277df00e15764613e5c1 (patch)
tree89c83b109dad132b3b81d849e948c31410ff0af4 /eg
parent9f68db38bddc39fbd37e57bf1751eaf7aac28e57 (diff)
downloadperl-ff2452de34aca0717369277df00e15764613e5c1.tar.gz
perl 3.0 patch #13 (combined patch)
I added the list slice operator: (LIST)[LIST] $hexdigit = (0..9,'a','b','c','d','e','f')[$fourbits] There was no way to cut stuff out of the middle of an array or to insert stuff without copying the head and tail of the array, which is gross. I added the splice operator to do this: @oldelems = splice(@array,$offset,$len,LIST) Equivalencies: splice(@array,0,1) splice(@array,0,0,$x,$y) splice(@array,-1,1) splice(@array,$#array+1,0,$x,$y) splice(@array,$x,1,$y) Having -lPW as one of the libraries that Configure looks for was causing lots of people grief. It was only there for people using bison who otherwise don't have alloca(), so I zapped it. Some of the questions that supported the ~name syntax didn't say so, and some that should have supported it didn't. Now they do. If you selected the manp directory for your man pages, the manext variable was left set to 'n'. When Configure sees that the optional libraries have previously been determined in config.sh, it now believes it rather than using the list it generates. In the test for byteorder, some compilers get indigestion on the constant 0x0807060504030201. It's now split into two parts. Some compilers don't like it if you put CCFLAGS after the .c file on the command line. Some of the Configure tests did this. On some systems, the test for vprintf() needs to have stdio.h included in order to give valid results. Some machines don't support the volatile declaration as applied to a pointer. The Configure test now checks for this. Also, cmd.c had some VOLATILE declarations on pointed-to items rather than the pointers themselves, causing MIPS heartburn. In Makefile.SH, some of the t*.c files needed to have dependencies on perly.h. Additionally, some parallel makes can't handle a dependency line with two targets, so the perly.h and perl.c lines have been separated. Also, when perly.h is generated, it will now have a declaration added to it for yylval--bison wasn't supplying this. The construct "while (s/x//) {}" was partially fixed in patch 9, but there were still some weirdnesses about it. Hopefully these are ironed out now. If you did a switch structure based on numeric value, and there was some action attached to when the variable is greater than the maximum specified value, that action would not happen. Instead, any action for values under the minimum value happened. The debugger had some difficulties after patch 9, due to changes in the meaning of @array in a scalar context, and because of an pointer error in patch 9. Because of the fix in patch 9 to let return () work right, the construct "return (@array)" did counter-intuitive things. It now returns an array value. "return @array" and "return (@array)" now mean the same thing. A pack of ascii strings could call str_ncat() with negative length when the length of the string was greater than the length specified for the field. Patch 9 fixed *name values so that the wouldn't collide with ordinary string values, but there were two places I missed, one in perldb, and one in the sprintf code. Perl looks at commands it is going to execute to see if it can bypass /bin/sh and execute them directly. Ordinarily = is not a shell metacharacter, but in a command like "system 'FOO=bar command'"i it indicates that /bin/sh should be used, since it's setting an environment variable. It now does that (other than that construct, the = character is still not a shell metacharacter). If a runtime pattern to split happens to be null, it was being interpreted as if it were a space, that is, as the awk-emulating split. It now splits all characters apart, since that's more in line with what people expect, and the other behavior wasn't documented. Patch 9 added the reserved word "pipe". The scripts eg/g/gsh and /eg/scan/scanner used pipe as filehandle since they were written before the recommendation of upper-case filehandles was devised. They now use PIPE. The undef $/ command was supposed to let you slurp in an entire binary file with one <>, but it didn't work as advertised. Xenix systems have been having problems with Configure setting up ndir right. Hopefully this will work better now, but it's possible the changes will blow someone else up. Such is life... The construct (LIST,) is now legal, so that you can say @foo = ( 1, 2, 3, ); Various changes were made to the documentation. In double quoted strings, you could say \0 to mean the null character. In pattern matches, only \000 was allowed since \0 was taken to be a \<digit> backreference. Since it doesn't make sense to refer to the whole matched string before it's done, there's no reason \0 can't mean null in a pattern too. So now it does. You could modify a numeric variable by using substr as an lvalue, and if you then reference the variable numerically, you'd get the old number out rather than one derived from the new string. Now the old number is invalidated on lvalued substr. The test t/op.mkdir should create directories 0777 rather than 0666. As Randal requested, the last semicolon of a program is now optional. Actually, he just asked for -e 'prog' to have that behaviour, but it seemed reasonable to generalize it slightly. It's been that way with eval for some time.
Diffstat (limited to 'eg')
0 files changed, 0 insertions, 0 deletions