19 years ago[difference between patch application from Change 913 and Change 922] timinator
Tim Bunce [Mon, 11 May 1998 20:58:58 +0000 (20:58 +0000)] 
[difference between patch application from Change 913 and Change 922]

 ------  DOCUMENTATION  ------

 Title:  "tweak doc for C<do FILENAME>"
  From:  Gurusamy Sarathy <>
Msg-ID:  <>
 Files:  pod/perlfunc.pod

 ------  PORTABILITY - GENERAL  ------

 Title:  "Add Porting/patching.pod document"
  From:  Daniel Grisinger <>
Msg-ID:  <>
 Files:  MANIFEST Porting/patching.pod

 Title:  "Add VMS specifics to Porting/makerel"
  From:  Charles Bailey <>
Msg-ID:  <>,
 Files:  Porting/makerel

p4raw-link: @913 on //depot/maint-5.004/perl: 91b1e15505068510ec71d8e011102933bbe41b37
p4raw-id: //depot/maint-5.004/perl@922

19 years agoAdd VMS specifics to Porting/makerel
Charles Bailey [Fri, 24 Apr 1998 06:57:46 +0000 (18:57 +1200)] 
Add VMS specifics to Porting/makerel

Funny - I had intended to submit a patch against _04 to fix
File::Path::mkpath() which had a nasty problem (especially on VMS).
A closer look at the 04-m1 source revealed that the necessary
change is already in there (thanks!).

I did, however, encounter build troubles on VMS one of which involved
the new save_helem() and save_aelem() in pp.c pp_hot.c not having
prototypes.  I hand applied the proto.h fix from Gurusamy Sarathy in:

and got further along to:

MCR Sys$Disk:[]miniperl.exe "-I[.lib]" ConfigPM.
Create/Directory [.lib.VMS_AXP.5_00404]
%CREATE-I-EXISTS, [.LIB.VMS_AXP.5_00404] already exists
%MMS-F-GWKNOPRN, There are no known sources for the current target [.EXT.DYNALOADER]DYNALOADER.PM.

Unfortunately the .PL-ification of was not accounted for
in the VMS Makefile.  The enclosed patch to vms/descrip.mms fixes that.

I realize that there have been many patches to vms related files recently,
perhaps including vms/descrip.mms.  Unfortunately I have not had the time
to check if this change was already suggested and/or incorporated into
the archive (though I did search the p5p and vmsp archives at for the string '_pl' but saw nothing relevant
to vms).  Apologies to the pumpking for any inconvenience (and
congratulations on the new baby :-).

Do note that the change to PERL_VERSION reflected in this patch
ought to be upped (via C<s/00404/00405/>) before releasing this
as _05.

Peter Prymmer

Single file affected: vms/descrip.mms
Apply with: patch -p0 < this_patch

Credited: Peter Prymmer <>


19 years agohints/ disable semctl(), align with devel version
Dominic Dunlop [Wed, 15 Oct 1997 01:58:03 +0000 (13:58 +1200)] 
hints/ disable semctl(), align with devel version

semctl(.., .., IPC_STATUS, ..) hangs the system on MachTen 4.1.  Here's a
patch to make hints/ assert that semctl() isn't available.  The
patch also brings the maintenance track hints file into line with that in
the development track, which is slightly more up-to-date.

p5p-msgid: v03110701b175fc029eb1@[]

19 years agoFix File::Find::finddepth typo in trial 2 release
Andreas J. Koenig [Tue, 21 Apr 1998 10:02:31 +0000 (22:02 +1200)] 
Fix File::Find::finddepth typo in trial 2 release

Subject: 5.004_04-m2: File::Find::finddepth is gone

It looks just like a typo. I've added a test to findfind.t too.


19 years agoClarify Termios usage in POSIX.pod
Rocco Caputo [Sun, 10 May 1998 03:36:24 +0000 (15:36 +1200)] 
Clarify Termios usage in POSIX.pod

The included patch removes some ambiguity from the POSIX::Termios


19 years agoReduce rm command line length in pod/Makefile
Hugo van der Sanden [Fri, 25 Jul 1997 05:56:14 +0000 (17:56 +1200)] 
Reduce rm command line length in pod/Makefile

Subject: [PATCH] Re: mostly OK: perl 5.00404 +MAINT_TRIAL_2 on sun4-solaris

:This is a success report for perl from,
:generated with the help of perlbug 1.20 running under perl 5.00404.
:Perl reported to build mostly OK on this system: op/ipc* both failed
:under 'make test', but succeeded when run individually. I assume this
:failure relates to the problems noted by Jarkko - I don't have time
:to investigate this right now.

Building the same with DEBUGGING passed all tests (additional configure
option '-Dccflags="-g -DDEBUGGING"').

I also note that 'make clean' in ./pod is producing an 'rm' line
2181 characters long: patch below splits the line into 3. (I assume
the Makefile isn't generated.)


19 years agoDocument integer pragma effect on % operator
Gisle Aas [Mon, 11 May 1998 20:58:58 +0000 (08:58 +1200)] 
Document integer pragma effect on % operator

Jon Orwant <> writes:

> Of course I expect "use integer" to use integers for everything.
> I don't see why that should change the value of -534 % 210.
> Here's what perlmod says:
>    Binary "%" computes the modulus of two numbers.  Given integer operands $a
>    and $b: If $b is positive, then $a % $b is $a minus the largest multiple of
>    $b that is not greater than $a.  If $b is negative, then $a % $b is $a
>    minus the smallest multiple of $b that is not less than $a (i.e. the result
>    will be less than or equal to zero).
> $a is -534.  $b is 210.  The largest multiple of 210 not greater than -534
> is -630.  Ergo, -534 % 210 is -534 - -630, or 96.
> But if you "use integer", you get -114.  Arithmetic Most Foul.

I think it should stay the way it is.  Perhaps we should apply this
documentation patch.


19 years agoRemove dead code from pod2man
M.J.T. Guy [Fri, 8 May 1998 02:01:26 +0000 (14:01 +1200)] 
Remove dead code from pod2man

This fragment of code was left behind when the .IX fix was made to
pod2man.    Since the X<> construct isn't used anywhere in the core pods,
this is currently something of a non-bug.    It also means that this patch
is untested.  :-)


19 years agoImprove docs for warning about code after an exec()
M.J.T. Guy [Sat, 9 May 1998 02:53:49 +0000 (14:53 +1200)] 
Improve docs for warning about code after an exec()

I wrote
> This probably ought to be in   perldoc -f exec.

    ... and here it is.

Credited: Chaim Frenkel <>


19 years agoperlvar.pod buglet E<EVMSERR>
Achim Bohnet [Tue, 3 Feb 1998 02:15:21 +0000 (14:15 +1200)] 
perlvar.pod buglet E<EVMSERR>

Besides the already reported two IPC tests that fail on Digital Unix
make install gave:
  ../pod/pod2man: Unknown escape in paragraph 156 of perlvar.pod: ``E<EVMSERR>''

Jarkko posted a patch for _59 back in Feb (last hunk in



19 years agoincorrect return value for hv_iterinit
Gurusamy Sarathy [Sun, 3 May 1998 02:46:35 +0000 (14:46 +1200)] 
incorrect return value for hv_iterinit

On Sat, 02 May 1998 16:29:22 EDT, "SynaptiCAD, Inc." wrote:
>While doing so and debugging the wrapper we found an error in the
>hv_iterinit function. It doesn't say in the code, but in
>Srinivasan's "Advanced perl Programming" book he indicates that
>the return value is the number of elements placed in the hash table
>(which seems logical). The error is that the routine is returning xhv_fill
>instead of xhv_keys. There is actually a comment on the line that
>is suggesting this line be changed, but it looks like it never was
>made (at leat not in the latest developer update on CPAN).

It's in now.  In one corner of the repository.


19 years agoUpdate MANIFEST for trial 2.
Tim Bunce [Fri, 1 May 1998 22:38:38 +0000 (22:38 +0000)] 
Update MANIFEST for trial 2.
(Porting/Contract lib/Tie/ t/op/tiehandle.t)

p4raw-id: //depot/maint-5.004/perl@913

19 years agoAdd t/op/tiehandle.t as xtext to repository (see change 911)
Tim Bunce [Fri, 1 May 1998 22:30:29 +0000 (22:30 +0000)] 
Add t/op/tiehandle.t as xtext to repository (see change 911)

p4raw-id: //depot/maint-5.004/perl@912

19 years ago Title: "Add ERRSV, ERRHV, DEFSV and SAVE_DEFSV for XS 5.005 compatibility"
Tim Bunce [Fri, 1 May 1998 21:35:03 +0000 (21:35 +0000)] 
 Title:  "Add ERRSV, ERRHV, DEFSV and SAVE_DEFSV for XS 5.005 compatibility"
  From: (Tim Bunce)
Msg-ID:  <>
 Files:  perl.h

  From:  Graham Barr <>
Msg-ID:  <>
 Files:  pod/perltie.pod lib/Tie/ pp_sys.c t/op/tiehandle.t

p4raw-id: //depot/maint-5.004/perl@911

19 years ago[difference between patch application from Change 909 and Change 910]
Tim Bunce [Fri, 1 May 1998 20:47:47 +0000 (20:47 +0000)] 
[difference between patch application from Change 909 and Change 910]

 Title: "Add warning for Illegal hex digit"
 Files:  util.c

   (applied based on p5p patch as
   b4ee34b7d8ab5b92f2ad7436c47c467977ad1238, this is the difference)

p4raw-link: @909 on //depot/maint-5.004/perl@909: 8b3d696ffd11cf2e49f6eaa575b829ab0a55352d
p4raw-id: //depot/maint-5.004/perl@910

19 years agoDocument changed local($a[$i],$b{$j}) behaviour re delete/splice
Charles Bailey [Tue, 25 Nov 1997 01:55:08 +0000 (13:55 +1200)] 
Document changed local($a[$i],$b{$j}) behaviour re delete/splice

Just a quick doc update; I've presumed that given the split discussion
on p5p the original fix will stay around.


19 years agoFix printf segmentation fault
Hugo van der Sanden [Sun, 7 Dec 1997 01:25:20 +0000 (13:25 +1200)] 
Fix printf segmentation fault

At 12:52 pm -0400 28/4/98, Ilya Zakharevich wrote:
>Hugo van der Sanden writes:
>> Using 5.004_05t1, the below gives an assertion failure:
>>   for ($i=0; $i<124; ++$i) {
>>       $data{$i}++;
>>   }
>>   foreach (0 .. 123) {
>>       @x = split(" ",undef);
>>       printf("%s%3d %s%6d\n",$x[0],$x[1],$x[2],$_);
>>   }
>> Run inside gdb with '-w /home/hsanden/t0', I get:
>>   Name "main::data" used only once: possible typo at /home/hsanden/t0 line 2.
>>   Use of uninitialized value at /home/hsanden/t0 line 5.
>>   assertion botched: *(unsigned int *)((caddr_t)Perl_op + Perl_op->ovu.ovu_size + 1 - sizeof (unsigned int)) == 0x55555555
>For those who have never seen it: This is a memory overrun.  Write was
>performed after an end of the malloced area.

Thanks Ilya - I hadn't seen it before.

I understand, I think, why it is happening: the $x[??] arguments to printf
are being compiled to pp_aelemfast, which pushes on the stack without
bounds checking - the second one exactly fills the stack, so the third
writes past the end; the final $_ is pp_gvsv, which does an EXTEND(sp, 1),
which grows the stack, copying all that it knows about, but leaving a
gap for the past-the-end value - this causes the SEGV when the overwrite
hasn't been trapped by the assertion.

I'm not sure whether AELEMFAST is supposed to EXTEND - if it is, the patch
below will suffice. If not, then presumably room on the stack is supposed
to be guaranteed at the time of generation of the op, which is in
op.c:peep() case OP_GV: I can't see there any attempt to check expected
stack depth.

I can certainly see the value of optimising the printf to something along
the lines of:

.. but I suspect that isn't what 'FAST' is supposed to mean.

Patch is to 5.004_04, and passes all tests (and the above failure case)
here; it might be worth adding the failure case to op/misc.t if it is
at least reasonably likely to fail in the same place in the future - if
so, only the last four lines should be required.

p5p-msgid: l03130300b16bebdbc314@[]

19 years agoperl_call_method() bug fix (corrupt op pointer)
Eugene Alterman [Tue, 24 Mar 1998 02:41:06 +0000 (14:41 +1200)] 
perl_call_method() bug fix (corrupt op pointer)

[this patch] fixes a bug in perl_call_method().
If "op" was null before a call and then it was set to point to a local
variable "myop" it mast be restored back to null.


19 years agoAdd warning for Illegal hex digit
Stephen P Potter [Mon, 13 Oct 1997 20:07:41 +0000 (08:07 +1200)] 
Add warning for Illegal hex digit

Ok, here's a real patch for the hex warning from earlier.

Credited: Stephen Potter <>
Credited: Tim Bunce <>


19 years ago"Change Ilya's do_binmode to K&R prototype and move to doio.c"
Tim Bunce [Fri, 1 May 1998 19:44:47 +0000 (19:44 +0000)] 
"Change Ilya's do_binmode to K&R prototype and move to doio.c"
 Files:  doio.c util.c

p4raw-id: //depot/maint-5.004/perl@909

19 years agoFix File::Basename to not untaint results (using new //t flag)
Eric Hammond [Fri, 1 May 1998 17:50:46 +0000 (17:50 +0000)] 
Fix File::Basename to not untaint results (using new //t flag)

Credited: Tom Phoenix <>

p4raw-id: //depot/maint-5.004/perl@907

19 years agoRuntime Carp verbosity without aliasing
Tim Bunce [Tue, 21 Apr 1998 22:48:07 +0000 (10:48 +1200)] 
Runtime Carp verbosity without aliasing

[as previous commit 7670b0aa522aabb98eb031aad22c217b308ccecb, but as

19 years agoRuntime Carp verbosity without aliasing
Joshua Pritikin [Tue, 21 Apr 1998 22:48:07 +0000 (10:48 +1200)] 
Runtime Carp verbosity without aliasing

Subject: Carp verbosity

Speaking of Carp, how about this small change?

p5p-msgid: H00000e50003936c@MHS

19 years ago[core language changes]
Spider Boardman [Tue, 28 Apr 1998 11:04:49 +0000 (11:04 +0000)] 
[core language changes]

 Title:  "5.004_04m5t1: Fix dangling references in LVs", "Fix dangling
         references in LVs"
Msg-ID:  <199804010541.AAA32615@Orb.Nashua.NH.US>,
 Files:  embed.h keywords.h opcode.h perl.h proto.h doop.c global.sym mg.c
         pp.c sv.c

 Title:  "Fix SvGMAGIC typo in change 904"
 Files:  doop.c

p4raw-id: //depot/maint-5.004/perl@906

19 years ago[difference between patch application from Change 904 and Change 905]
Tim Bunce [Tue, 28 Apr 1998 10:32:20 +0000 (10:32 +0000)] 
[difference between patch application from Change 904 and Change 905]

seems like a test accounting disagreement with

p4raw-link: @904 on //depot/maint-5.004/perl: 0af7994b889ad0dfcacb011f16f9e3c77a9292b9
p4raw-id: //depot/maint-5.004/perl@905

19 years agoAllow but ignore embedded /...(?o).../ in regexp
Hugo van der Sanden [Mon, 2 Mar 1998 21:46:07 +0000 (09:46 +1200)] 
Allow but ignore embedded /...(?o).../ in regexp

Subject: [PATCH] Re: Regex weirdness

:    I found some true strangeness in 5.004_04 which doesn't occur in
:5.004_64.  I didn't find any patches which obviously meant to fix it,
:so just in case:
:        $string = "aa bb cc";
:        foreach ('aa', 'bb', '(?o)aa', 'bb', 'aa', '(?o)aa') {
:            if ($string =~ /($_)/) { print "yes:  $_\n" }
:            else                   { print "no:   $_\n" }
:        }
:    produces, in 5.004_04:
:        yes:  aa
:        yes:  bb
:        yes:  (?o)aa
:        no:   bb
:        yes:  aa
:        yes:  (?o)aa
:    but in 5.004_64, it does the right thing (given that the right
:thing is to ignore (?o) directives)

Patch below makes 5.004_05t1 do that.

:    Can somebody say for sure that the root problem has been
:addressed, or shall I look for more subtle examples?

Depends which root problem - the patch below fixes the problem of
'5.004 doesn't ignore (?o)' (though perhaps it should be ignoring
(?g) as well?). The devel branch solution is rather different since
(as I understand it) it can attach flags to a particular subexpression
of the regexp, so that I believe this:

  /($_)(?:(?o)($_))/ foreach qw( a b );

will match "aa" the first time and "ba" the second. I guess the
'root cause' of the difference between the _05t1 and the _64
behaviour is that the devel branch rightly accepts patches that
the maint branch rightly refuses, and regexps represent an area
of major change in that respect.

[Later] Nope, I was wrong: the above code matches "aa" and "bb" in
5.004_64. I guess that because /o wasn't set on the top level, it
has already thrown away the old compiled regexp before it might
have got as far as seeing /o on the subexpression.

[Even later]
There seems to be an additional oddity with the 5.004_05t1 status
quo, since this:

  foreach $a (qw(a b)) { foreach $b (qw(a b)) {
    printf "$a$a =~ $b$b: %s\n", (("$a$a" =~ /$b((?o)$b)/) ? 'yes' : 'no');

prints this:

  aa =~ aa: yes
  aa =~ bb: aa
  bb =~ aa: bb
  bb =~ bb: bb

.. so looking for more subtle examples might still be fruitful. With the
below patch the above code prints the same results as 5.004_64, matching


19 years agoDon't accidentally untaint target of s///
Chip Salzenberg [Tue, 28 Apr 1998 22:32:20 +0000 (10:32 +1200)] 
Don't accidentally untaint target of s///

Good news and bad news.

Good news: This patch seems to fix the bug.

Bad news:  I can't get a test into taint.t that reliably fails
           under 5.004_04.  My only good test is a small program:
            $ perl -T -e 'my $x = $^X; $x =~ s/e/e/; join("",$x), kill 0'
           Something reliable and appropriate for taint.t would
           be greatly appreciated.

p5p-msgid: 19980310151756.24767@cyprus

19 years agoNew regex flag //t to leave $1 etc. tainted
Chip Salzenberg [Tue, 28 Apr 1998 22:32:20 +0000 (10:32 +1200)] 
New regex flag //t to leave $1 etc. tainted

This patch adds the Tim-originated //t flag to leave $1 etc. tainted.
This should be forward-ported to the development track (_6*); I'm not
set up for that right now, so maybe someone else could do it.  It'll
be easier if you apply my other recent taint-related patches first.

(This patch was drop-dead easy; the hardest part was finding another
flag bit for PMOPs.)

Credited: Tim Bunce <>

p5p-msgid: 19980310192640.37826@cyprus

19 years ago[difference between patch application from Change 897 and Change 904]
Tim Bunce [Mon, 27 Apr 1998 20:20:21 +0000 (20:20 +0000)] 
[difference between patch application from Change 897 and Change 904]

 ------  CORE LANGUAGE  ------

 Title:  "Protect join() against double reads on undef and SvGMAGICALs"
  From:  Chip Salzenberg <>, Tim Bunce
Msg-ID:  <>
 Files:  doop.c

 Title:  "fixes for various noises under PERL_DESTRUCT_LEVEL"
  From:  Gurusamy Sarathy <>
Msg-ID:  <>
 Files:  perl.c

 Title:  "Fix nice_chunk memory leak"
  From:  Gurusamy Sarathy <>
Msg-ID:  <>
 Files:  sv.c

 ------  DOCUMENTATION  ------

 Title:  "perlcall is Perl from C, not C from Perl"
  From:  Steve A Fink <>
 Files:  pod/perlembed.pod

 Title:  "(repost) new text for perlsec", "new text for perlsec"
  From:  Tom Phoenix <>
Msg-ID:  <>
 Files:  pod/perlsec.pod

 ------  EXTENSIONS  ------

 Title:  "NDBM_File man page needs Fcntl"
  From:  "Danny R. Faught" <>
Msg-ID:  <>
 Files:  ext/NDBM_File/

 ------  LIBRARY  ------

 Title:  "Documentation discrepancy: pragmatic modules"
  From:  "M.J.T. Guy" <>, (Hugo van der Sanden)
Msg-ID:  <>,
 Files:  lib/ lib/ lib/

 ------  PORTABILITY - GENERAL  ------

 Title:  "Updated hints file for svr4"
  From:  Andy Dougherty <>
Msg-ID:  <Pine.SUN.3.96.980423110522.26621A-100000@newton.phys>
 Files:  hints/

 Title:  "Pumpkin update -- shared location"
  From:  Andy Dougherty <>
Msg-ID:  <Pine.SUN.3.96.980424115837.6222A-100000@newton.phys>
 Files:  Porting/pumpkin.pod

 ------  UTILITIES  ------

 Title:  "Major update to h2ph.PL"
  From:  Billy <>
Msg-ID:  <>
 Files:  utils/h2ph.PL

p4raw-link: @897 on //depot/maint-5.004/perl: f06f9b6fc5a686f0169ee2a91b32d5e7125a44ae
p4raw-id: //depot/maint-5.004/perl@904

19 years agoDynaloader build on VMS
Peter Prymmer [Fri, 24 Apr 1998 06:57:46 +0000 (18:57 +1200)] 
Dynaloader build on VMS

Funny - I had intended to submit a patch against _04 to fix
File::Path::mkpath() which had a nasty problem (especially on VMS).
A closer look at the 04-m1 source revealed that the necessary
change is already in there (thanks!).

I did, however, encounter build troubles on VMS one of which involved
the new save_helem() and save_aelem() in pp.c pp_hot.c not having
prototypes.  I hand applied the proto.h fix from Gurusamy Sarathy in:

and got further along to:

MCR Sys$Disk:[]miniperl.exe "-I[.lib]" ConfigPM.
Create/Directory [.lib.VMS_AXP.5_00404]
%CREATE-I-EXISTS, [.LIB.VMS_AXP.5_00404] already exists
%MMS-F-GWKNOPRN, There are no known sources for the current target [.EXT.DYNALOADER]DYNALOADER.PM.

Unfortunately the .PL-ification of was not accounted for
in the VMS Makefile.  The enclosed patch to vms/descrip.mms fixes that.

I realize that there have been many patches to vms related files recently,
perhaps including vms/descrip.mms.  Unfortunately I have not had the time
to check if this change was already suggested and/or incorporated into
the archive (though I did search the p5p and vmsp archives at for the string '_pl' but saw nothing relevant
to vms).  Apologies to the pumpking for any inconvenience (and
congratulations on the new baby :-).

Credited: Tim Bunce <>


19 years agoperl compile fix for AIX 4.3
Jens-Uwe Mager [Sun, 26 Apr 1998 05:55:47 +0000 (17:55 +1200)] 
perl compile fix for AIX 4.3

Perl does not compile under AIX 4.3 due to two problems. First,
in an attempt to make the DNS resolver thread safe h_errno is
not a simple variable any more, it is a define. This causes the
definition in pp_sys.c to fail. Second the XCOFF header files
remove some useful definitions that the dynamic loader in dl_aix.xs
did rely upon. The following is a patch that fixes both problems.


19 years agoIO::Socket->socketpair broken (typo)
Olaf Titz [Mon, 20 Apr 1998 22:21:10 +0000 (10:21 +1200)] 
IO::Socket->socketpair broken (typo)

An obvious typo makes IO::Socket->socketpair() return bogus results.
Here's the patch:


19 years agoClarify require "Foo::Bar" non-bareword issue
Dominique Dumont [Thu, 23 Apr 1998 05:12:02 +0000 (17:12 +1200)] 
Clarify require "Foo::Bar" non-bareword issue

Subject: require doc problem patch

Since I was red with shame because I didn't eyeball the FM enough to
spot the "bareword" part with the require function, I'm providing a patch
to the perlfunc man to clarify this problem that
was discussed heavily on perl5porters list.

Here we go :


19 years agoperl.c fixes for -DUNEXEC
Matt Wette [Wed, 15 Oct 1997 00:44:53 +0000 (12:44 +1200)] 
perl.c fixes for -DUNEXEC

I have sucessfully snagged unexelf.c from GNU emacs-20.2 and included it
w/ perl and -DUNEXEC to get "perl -u" to work.  I'm a happy camper.

Included are the fixes required.


19 years ago-2.0 vs. -2 (was Number representations)
Chip Salzenberg [Tue, 28 Apr 1998 08:20:21 +0000 (20:20 +1200)] 
-2.0 vs. -2 (was Number representations)

According to Ilya Zakharevich:
> Tuomas Lukka writes:
> > Still, the fact that the differenct between {-2 and -2.0} and
> > {2 and 2.0} is not the same is disconcerting...
> Much more, it is a bug.  The feature that *constants* 2 and 2.0 mean
> different things in Perl was added by Larry per my request, to make
> Math::PARI possible.  Now Math::PDI (sp?) uses this too.

Under the assumption that Larry really does want them different, this
patch should serve:

Credited: Chip Salzenberg <>

p5p-msgid: 19980309185652.11231@cyprus

19 years agoBetter error message for require failure
Ed Peschko [Thu, 23 Apr 1998 06:43:00 +0000 (18:43 +1200)] 
Better error message for require failure

*sigh* try three. Incorporates the suggestion by Sarathy to drop the 'the' in
'locate the file', and correct a braindead mis-syncronization error in the last

Never has there been so much grief over two words of plain text...


19 years ago[difference between patch application from Change 896 and Change 897]
Tim Bunce [Wed, 22 Apr 1998 23:49:24 +0000 (23:49 +0000)] 
[difference between patch application from Change 896 and Change 897]

 ------  CORE LANGUAGE  ------

 Title:  "fix for "Unbalanced string table refcount""
  From:  Gurusamy Sarathy <>
Msg-ID:  <>
 Files:  sv.c

   (applied based on p5p message as 45b0f2da05a0069bf1df601ff96ee525f651b435)

 Title:  "Add fourth arg to substr: substr EXPR,OFFSET,LEN,REPLACEMENT"
  From:  Gisle Aas <>
Msg-ID:  <>
 Files:  pod/perlfunc.pod Todo pp.c t/op/substr.t

 Title:  "Odd number of elements in hash list."
  From:  Tom Phoenix <>
Msg-ID:  <>
 Files:  MANIFEST pod/perldiag.pod pp.c pp_hot.c t/op/hashwarn.t

   (applied based on p5p message as 4e6dd09136b96d3e6f8fc8cf5af2dc3e32c65eec)

 Title:  "bidirectional pipe warning blues"
  From: (Paul Marquess)
Msg-ID:  <>
 Files:  doio.c

   (applied based on p5p message as 610d1f920220f1a98002175088e769d3d561e68a)

 Title:  "warning for: bless $foo, """
Msg-ID:  <H00000e5000378a0@MHS>
 Files:  pod/perldiag.pod pp.c

 ------  DOCUMENTATION  ------

 Title:  "long list of man page nitpicks"
  From:  Greg Bacon <>, Tom Christiansen
Msg-ID:  <>,
 Files:  pod/perlapio.pod pod/perlcall.pod pod/perldebug.pod pod/perldelta.pod
         pod/perldiag.pod pod/perlembed.pod pod/perlfaq2.pod
         pod/perlfaq3.pod pod/perlfaq4.pod pod/perlfaq5.pod
         pod/perlfaq7.pod pod/perlfaq8.pod pod/perlform.pod
         pod/perlfunc.pod pod/perlguts.pod pod/perlipc.pod
         pod/perllocale.pod pod/perlmodlib.pod pod/perlop.pod
         pod/perlre.pod pod/perlref.pod pod/perlrun.pod
         pod/perlstyle.pod pod/perlsub.pod pod/perlsyn.pod
         pod/perltoot.pod pod/perlvar.pod pod/perlxs.pod

   [one change was applied as

 Title:  "document that system() does not set $! when it fails"
  From:  "Mark R. Levinson" <>
Msg-ID:  <>
 Files:  pod/perlfunc.pod

 Title:  "Fix pod/roffitall execute permission"
Msg-ID:  <1997Nov17.132031.2589892@cor.newman>
 Files:  pod/roffitall

 Title:  "document when split ignores trailing empty fields"
  From:  Hugo van der Sanden <>
Msg-ID:  <l03130300b14fac832b77@[]>
 Files:  pod/perlfunc.pod

 ------  EXTENSIONS  ------

 Title:  "Buglet in documentation"
  From:  Horst von Brand <>
Msg-ID:  <>
 Files:  ext/Opcode/

   (applied based on p5p message as eff8350db965b7b9ea400107c5d354b9651e0a46)

 Title:  "Failure to append to perllocal.pod should not be fatal"
  From: (Andreas J. Koenig)
Msg-ID:  <>
 Files:  lib/ExtUtils/

 ------  PORTABILITY - GENERAL  ------

 Title:  "Add Social Contract (2nd Draft) as Porting/Contract"
  From:  Russ Allbery <>
Msg-ID:  <m3btw66n8i.fsf@windlord.Stanford.EDU>
 Files:  Porting/Contract

 Title:  "VMS patches to 5.004_03"
  From:  Charles Bailey <>
Msg-ID:  <>
 Files:  vms/vms.c

 Title:  "hints/ - enable vfork"
  From:  Andy Dougherty <>
Msg-ID:  <Pine.SUN.3.96.980417110749.19327B-100000@newton.phys>
 Files:  hints/

p4raw-link: @896 on //depot/maint-5.004/perl: 0562b9ae2b0eff79632fc0164c13c34c06a019e2
p4raw-id: //depot/maint-5.004/perl@897

19 years agosupport find2perl -follow
Billy [Tue, 7 Apr 1998 10:47:23 +0000 (22:47 +1200)] 
support find2perl -follow

it's been tried before by better people than i, i'm sure, but here's a
patch for find2perl (well, find2perl.PL) that implements the -follow
option; i tested it very *very* trivially, and it seemed to work (it gave
the same output as "find -follow" anyway)...

how it works:

we have a hash (%already_seen) which stores which files we've seen (it
uses "$dev,$ino" as the hash key - that's unique for each file, i figure),
but only records it in the hash if the file we're looking at isn't a
directory (that what find seems to do)... also, all lstat() calls become
stat() calls with -follow... no doubt the special case "-follow -type l"
should be considered, but i didn't think of it at the time... anyway,


19 years agoConfig: Irix 5 hints
Kurt Starsinic [Sun, 5 Apr 1998 23:48:33 +0000 (11:48 +1200)] 
Config: Irix 5 hints

cc under Irix 5 needs a bigger kick in the pants to optimize toke.c:


19 years agowin32 tweaks (signals and crypt support)
Gurusamy Sarathy [Thu, 16 Apr 1998 12:55:48 +0000 (00:55 +1200)] 
win32 tweaks (signals and crypt support)

This clears up a couple of problems in trial1:
   - reinstates common signals to avoid noises from libraries
   - build support for enabling crypt() was busted


19 years agoptags broken
Ilya Zakharevich [Mon, 24 Nov 1997 18:22:40 +0000 (06:22 +1200)] 
ptags broken

Note that whoever changed the style of declaration of global variables
did not fix emacs/ptags.

Patch follows,


19 years agoormaments method in Term/ causes warning with string arg.
Hiroo Hayashi [Mon, 6 Apr 1998 11:39:43 +0000 (23:39 +1200)] 
ormaments method in Term/ causes warning with string arg.


19 years agolib/Pod/
Daniel S. Lewart [Thu, 31 Jul 1997 04:01:00 +0000 (16:01 +1200)] 

Perl5 Porters,

The lib/Pod/ patch below reduces weblint errors and warnings of
pod2html output by an order of magnitude.  Some highlights (by line):
  16     use Config for $Config{perladmin} later
  20     s/Pod::HTML/Pod::Html/
  24     s/Pod::HTML/Pod::Html/
 305     $title =~ s/\s+$//
 319-21  Remove parenthetical clause from $title
 331     Add <LINK REV="made" HREF="mailto:$Config{perladmin}"> to head
 374     s/\s+$// from =head[1-6] heading
 376     s/\s+$// from =item text
 397     Move <P> before $text
 786     Escape ["&<>] in $title
 860     Escape ["&<>] in $convert
 903-13  Fix <UL> bullet lists
 922-32  Fix <OL> numbered lists
 941-51  Fix <DL> definition lists
1126     Fix $rest == 0 (q.v. perlembed.pod C<0>, perllocale.pod I<0>)
1284-87  Convert e-mail addresses beautifully (q.v. perltoc CREDITS)
1289     Escape " in $word too
1292     Escape " in $word too
1436     Escape ["&<>] in $str
1506     Avoid trailing </DL>

Also, I think the stanza at lines 1288-90:
} elsif ($word !~ /[a-z]/ && $word =~ /[A-Z]/) {  # all uppercase?
    $word = html_escape($word) if $word =~ /["&<>]/;
    $word = "\n<FONT SIZE=-1>$word</FONT>" if $netscape;
should be changed for the following reasons:
1) It shrinks one-letter words (e.g. A and I)
2) It is English-specific (Merkin hegemony!)
3) It introduces Netscape-specific HTML


19 years fix
Charles Bailey [Tue, 25 Nov 1997 01:52:47 +0000 (13:52 +1200)] fix

This patch came from one of the VMSPerlers, and seems generally


19 years agoComments added to
Andy Wardley [Thu, 9 Apr 1998 04:10:06 +0000 (16:10 +1200)] 
Comments added to

I've added a bunch of comments to, partly in an effort to
better help me understand what's going on and also in response to a
question for such an annotated on c.l.p.misc.

No changes to the code or user documentation have been made which
makes it a pretty boring patch really.  Here it is all the same.

Credited: Chip Salzenberg <>
Credited: Tom Christiansen <>

p5p-msgid: 980409182357.ZM21638@bandanna

19 years add run-for-some-time mode
Jarkko Hietaniemi [Fri, 3 Apr 1998 05:01:22 +0000 (17:01 +1200)] add run-for-some-time mode

Release III.


19 years agoglibc2.0.6 missing MSG_* <sys/socket.h> defines.
Andy Dougherty [Sun, 5 Apr 1998 23:27:22 +0000 (11:27 +1200)] 
glibc2.0.6 missing MSG_* <sys/socket.h> defines.

This is a patch suitable for the maintenance track; a similar patch
is already in 5.004_64, but that version relies on a config.h variable
HAS_GNULIBC that is not available in 5.004_04.  This version uses
__GLIBC__, which ought to be perfectly fine.

In glibc2.0.6 systems, the various MSG_* #defines in <sys/socket.h>
are no longer #defines.  Instead, they are enums.
I have received confirmation (bug libc/545) that they will again be
#defined in 2.0.7, but I suspect that we ought to expect to
encounter 2.0.6 and the various 2.0.7-prereleases for quite a while.

p5p-msgid: Pine.SUN.3.96.980406113950.3166L-100000@newton.phys

19 years agoInstall extensions with bootstrap (again) in $archlib
Achim Bohnet [Mon, 6 Apr 1998 00:08:35 +0000 (12:08 +1200)] 
Install extensions with bootstrap (again) in $archlib

Fixes the problem I've reported in

Now files in blib/lib gets (again) installed into the architecture depended
library tree if there are files in blib/arch.

I've tested the patch with 5.004_64 on Digital Unix.  Patch should also
be okay for 5.004_05mt1 (no build out of the box here so I just has a look
at ExtUtils/ source).

Credited: Andreas J. Koenig <>


19 years agoDocument that does not load IO::Select etc
Graham Barr [Sun, 19 Apr 1998 20:07:01 +0000 (08:07 +1200)] 
Document that does not load IO::Select etc

This is the change I have put in the IO distribution.


19 years agoBuglet in documentation
Horst von Brand [Mon, 24 Nov 1997 22:49:08 +0000 (10:49 +1200)] 
Buglet in documentation

Patch tells all:


19 years agolong list of man page nitpicks
Greg Bacon [Fri, 6 Jun 1997 05:55:19 +0000 (17:55 +1200)] 
long list of man page nitpicks

In message <>,
    Tim Bunce writes:
: I'd be very grateful if someone could convert this into a patch (diff)
: file that I could apply to the docs.

I know Tom keeps the perlfaq stuff under his own revision control, so
I've done the perlfaq patch separately.

I didn't address trigraphish comments or breaking on dashes.

Credited: Tom Christiansen <>


19 years agofix-up of previous perlre.pod patch
Ted Ashton [Mon, 22 Dec 1997 23:15:23 +0000 (11:15 +1200)] 
fix-up of previous perlre.pod patch

Thus it was written in the epistle of Hugo van der Sanden,
> Subject:     Re: [PATCH] perlre.pod
> Sent:        3/3/98 1:14 am
> To:          Ted Ashton,
> >+use this for lookbehind.  If you are looking for a "bar" which isn't
> preceeded
> >+"foo", C</(?!foo)bar/> will not do what you want.  That's because
> s/preceeded/preceded/
> s/"foo"/by a "foo"/
> Hugo

Ah, quite true.  Here's another with the above fixed and with the paragraph
split into two.


19 years agoMention SWIG in perlxs.pod
Steve A Fink [Wed, 8 Apr 1998 04:11:44 +0000 (16:11 +1200)] 
Mention SWIG in perlxs.pod

Subject: Embedding perl, was Re: RULING: while ($x = <>)

On Wed, 8 Apr 1998 wrote:

> 1.  Embedding perl usefully is very hard.  As documented in Gisle's
> web page, the internal data structures are arcane and have many subtle
> special cases -- and you have to know a large quantity of them in order
> to do even minor gluing.  As a result, the barrier to entry is steep.

What he said.

This isn't a comprehensive solution, but from I've seen of SWIG, it seems
to be extremely useful for at least the minor glue cases. Perhaps the
perlembed and/or perlxs pods should point to SWIG?

A doc patch to mention SWIG is included below. (Note that I have far too
little real experience with using SWIG to know how appropriate this is.
It's just worked, and worked well, for everything that I wanted so far.)

In the best of worlds, both the perl core implementation and XS would be
cleaned and simplified. Not easy tasks.

p5p-msgid: Pine.HPP.3.96.980408154956.20990K-100000@brooksie.CS.Berkeley.EDU

19 years agounimplemented umask() should return undef not die
Kurt D. Starsinic [Wed, 11 Mar 1998 08:01:10 +0000 (20:01 +1200)] 
unimplemented umask() should return undef not die

Subject: [PATCH] umask() does not match Camel

umask() behavior is not consistent with the Camel; see, e.g., symlink()'s
documentation, which suggest nesting the call in an eval { }.  This patch
(against 5.004_62) corrects the discrepancy, won't break one-liners, and
clarifies the mud somewhat:


19 years agostale pointers after realloc (MEXTEND in pp_print and pp_prtf)
Malcolm Beattie [Wed, 22 Apr 1998 23:49:24 +0000 (23:49 +0000)] 
stale pointers after realloc (MEXTEND in pp_print and pp_prtf)

Gurusamy Sarathy writes:
> The compiler builds (after a few changes to the Makefile).
> At some point xsubpp dumped core while generating
> Makefile from Makefile.PL.  It would seem there is a bug to be
> fixed in perl.  (I temporarily got around this by changing
> C<print @InitFileCode> to C<print join "", @InitFileCode>
> in xsubpp.)

[cc'ed to perl5-porters]

I ran across exactly that symptom in December. It turned out to be a
very hard-to-find bug which I fixed in:

    Change 361 on 1997/12/12 by mbeattie@localhost

    pp_print and pp_prtf handling of tied file handles used EXTEND
    instead of MEXTEND leading to core dumps. This fix needs
    propagating back to the maintenance branch.

After fixing it, I did a check to see if anything else was doing an
extend and then using a cached MARK but didn't see anything. Are you
sure the latest perl still causes the problem?

p4raw-link: @361 on //depot/perl: 0da8b9e680048dc3905038cf517a053580d0b299

19 years agobidirectional pipe warning blues
Paul Marquess [Wed, 8 Apr 1998 09:31:35 +0000 (21:31 +1200)] 
bidirectional pipe warning blues

When Perl detects the use of a bidirectional pipe it will warn about it
(if warnings are enabled) and silently turn it into a writeable pipe.

For example once perl is finished with this bit of code

    open (F, "| true |") ;

it will actually send "true |" to the shell for execution.

On my SunOS box this isn't a problem. Unfortunately Linux which uses
bash is another story.  It spits out this warning

    sh: -c: line 2: syntax error: unexpected end of file

Here is a patch to shut up the warning by zapping the terminating "|".


19 years agoanother destruct_level fix
Gurusamy Sarathy [Wed, 22 Apr 1998 23:49:24 +0000 (23:49 +0000)] 
another destruct_level fix

On Mon, 30 Mar 1998 23:47:55 +0200, Jan-Pieter Cornet wrote:
>Another fix to prevent coredumps when running with an increased
>I believe that this fixes a typo or thinko of the original coder.

That's not accurate, I'm afraid.

>                                                                 Could the
>guilty party please stand up and confess in shame, or, in case I'm wrong,
>flame me for ruining their artistically crafted code and present the
>proper fix while doing so?

The HeVAL() slot of the string table contains a reference count (which
is not an IV for efficiency reasons).  The right value to signify a
reference count of zero is Nullsv, not &sv_undef.

At the time that code was written, hv_free_ent() didn't expect
HeVAL(entry) to contain a valid SV.  Someone changed that assumption.

>                          (I know that HeVAL of a HE in the strtab shouldn't
>contain an SV*, but hv_free_ent can't stand non-SV* values there, and
>I didn't know a better fix. This probably leaks hek_key[]s, but then again,
>that's the whole purpose of this code, to detect those leaks).

The "right" fix is to patch hv_free_ent() with:


19 years agoOdd number of elements in hash list.
Tom Phoenix [Sun, 2 Nov 1997 18:21:19 +0000 (06:21 +1200)] 
Odd number of elements in hash list.

On Thu, 26 Mar 1998, Ed Jordan wrote:

> Perl should probably give a more specific warning where a hash is
> initialised with a single element which is a hash-ref,

Okay. :-)

This patch changes the text of the warning given when warnings are on and
a hash is initialized with a single element which is either a hashref or
arrayref, typically like this.

    %hash = { qw/ I used curlies instead of parens / };
    %hash = [ qw/ This mistake is somewhat less common / ];

(At the same time, I've exorcized the oxymoron "hash list" from the

It should be okay to add to the _05 release, since it's not a _new_
warning, just a change in the text of the existing one.


19 years agoAllow more lenient switch processing
John L. Allen [Wed, 18 Mar 1998 23:26:46 +0000 (11:26 +1200)] 
Allow more lenient switch processing

This patch fixes two things:

1. scripts beginning with #! that mention perl on the first line
   and have a -i flag stop reading flags after the -i.  So,
#!   perl -iorig -nl
   won't see the -nl

2. On AIX (shudder), scripts that start like #!/bin/perl -l -n -s
   and are executed directly die with
Unrecognized switch: - -n -s  (-h will show valid options).
   This is because on AIX, what gets run is
/bin/perl '-l -n -s' <script_name>

   I don't think it does any harm to allow args like '-l -n -s', with
   single blanks between flags to be valid, since presently they
   aren't.  Two blanks between switches ends switch processing.
   But perhaps it shouldn't.  Another thing that really bothers me
   is the double switch processing that goes on with #! lines: first
   when argv is scanned and again when the #! line is scanned.  It
   really shouldn't happen, and can cause unexpected results.  Toke.c
   should probably skip over the first part of the #! line that
   exactly matches argv[1].  I think that was Chip's idea from a
   while back.

The patch does _not_ fix the error msg that results from

#!/bin/perl -z

Can't emulate -z on #! line at /tmp/t line 1.

This msg should be "Invalid option -z on #! line ...", but I presume
other valid options can't be emulated on the #! line, hence this msg.
I'm a bit confused by the split option handling duties shared by the
reswitch code and the moreswitches sub in perl.c, so I'm not sure what
the right thing to do is.  It looks like moreswitches is mainly for
#! line flag processing, but does double duty for argv switch processing.
I considered making moreswitches take an additional arg that tells it
whether it's doing argv or #! processing, but became lazy: but in a
bad way :)

[ This morass of switch processing code should be rewritten, IMOSVHO.
  And much better commented. ]


19 years agofix for "Unbalanced string table refcount"
Gurusamy Sarathy [Sat, 4 Apr 1998 05:43:48 +0000 (17:43 +1200)] 
fix for "Unbalanced string table refcount"

There was a hole in the refcounting of GvSTASH(), illustrated by
this testcase (run under PERL_DESTRUCT_LEVEL=1):

   $bar = *a; $foo = *bar; $bar = *foo; $bar = ""; $foo = "";

defstash is never destroyed as a result of this, and the
the string-table remains populated till the very end.

Now the testsuite should run clean under PERL_DESTRUCT_LEVEL
except for the two "Scalars leaked" messages.


19 years ago[inseperable changes between Change 887 and Change 896]
Tim Bunce [Wed, 22 Apr 1998 11:49:24 +0000 (11:49 +0000)] 
[inseperable changes between Change 887 and Change 896]

 Assorted patches:

 ------  CORE LANGUAGE  ------

 Title:  "Fix semctl for Linux, Sun and SVR4"
  From:  Graham Barr <>, (Larry W. Virden, x2487)
Msg-ID:  <>, <>
 Files:  doio.c

 Title:  "C<dSP> entails using C<SP>, not C<sp>"
  From:  Gurusamy Sarathy <>
Msg-ID:  <>
 Files:  pod/perlcall.pod pod/perlembed.pod pod/perlguts.pod pod/perlxs.pod
         doio.c doop.c ext/DB_File/DB_File.xs
         ext/DynaLoader/dl_dld.xs ext/Opcode/Opcode.xs
         ext/POSIX/POSIX.xs ext/Socket/Socket.xs gv.c
         lib/ExtUtils/typemap mg.c os2/OS2/REXX/REXX.xs

 Title:  "Misleading error on close of unopened handle"
  From:  "M.J.T. Guy" <>
Msg-ID:  <>
 Files:  doio.c

 Title:  "h_errno might not be an int"
  From:  Andy Dougherty <>
Msg-ID:  <Pine.SUN.3.96.980325165059.22255D-100000@newton.phys>
 Files:  pp_sys.c

 Title:  "SEGV compiling localised lexical in perl5.004_05t1"
  From:  Gurusamy Sarathy <>, (Hugo
         van der Sanden)
Msg-ID:  <>,
 Files:  op.c t/op/misc.t


 Title:  " abs_path() and fast_abs_path() plus code merge"
  From:  Graham Barr <>
Msg-ID:  <>
 Files:  lib/

 Title:  "efficient version of"
  From: (Andreas J. Koenig)
Msg-ID:  <>
 Files:  lib/

 Title:  "Socket occasional SEGV in pack_sockaddr_un"
  From:  Trevor Blackwell <>
Msg-ID:  <>
 Files:  ext/Socket/Socket.xs

p4raw-link: @887 on //depot/maint-5.004/perl: 6cdf74fe31f049dc2164dbb9e6242179d4b8ee1f
p4raw-id: //depot/maint-5.004/perl@896

19 years agoFix bug in locale.t
Jarkko Hietaniemi [Sun, 4 Jan 1998 10:41:28 +0000 (22:41 +1200)] 
Fix bug in locale.t

I am oh _so_ ashamed.


19 years agofix various problems with backticks on win32
Gurusamy Sarathy [Fri, 6 Mar 1998 07:25:10 +0000 (19:25 +1200)] 
fix various problems with backticks on win32

Several people have complained that qx// misbehaves on win32.
It doesn't honor PERL5SHELL (like the docs claim), and it
wants to start a shell even when it doesn't need to.  This
patch fixes such problems by providing our own popen()/pclose().


19 years agomv-if-diff
Robin Barker [Fri, 27 Mar 1998 05:59:58 +0000 (17:59 +1200)] 

There is a bug with mv-if-diff which is fixed by the following patch.

At the moment, this bug is hidden because all calls to mv-if-diff
are "sh mv-if-diff tmp ..." !


19 years ago'use Env' on WinNT/95 fails
Gurusamy Sarathy [Fri, 27 Mar 1998 12:09:21 +0000 (00:09 +1200)] 
'use Env' on WinNT/95 fails

On Wed, 25 Mar 1998 14:22:54 GMT, Lewis Tsao wrote:
>Given the following:
>        use Env;
>Perl reports error saying:
>Modification of a read-only value attempted at C:\PERL\lib/
>line 48.
>BEGIN failed--compilation aborted at (eval 1) line 2.
>BEGIN failed--compilation aborted at ....
>I think the problem here is 'keys(%ENV)' in picks up empty
>values resulting in empty variable '$ '. This does not appear to
>happen under Unix.
>A work round appears to ignore empty '$sym' in vars::import inside
>the foreach loop.

This fix should be applicable to the maintenance branch as well.


19 years agoAllow POSIX to export nice()
Bruce J. Keeler [Wed, 18 Mar 1998 04:11:02 +0000 (16:11 +1200)] 
Allow POSIX to export nice()

Subject: Re: initgroups() and setgroups() for

[...], nice() is in POSIX.pod and POSIX.xs, but not in
so you can't easily import it.  Ridiculously trivial patch:


19 years agobug in Class::Struct
Tom Christiansen [Thu, 4 Dec 1997 09:55:46 +0000 (21:55 +1200)] 
bug in Class::Struct

I am detached from the net and am consequently unable to test the
following situaton with any later releases, but at least under 5.004_01,
the Class::Struct module has a brief but critical bug.  It isn't testing
against the proper class when assigning to a structure element that is
a class.

This can be demo'd in the following pair of samples.  This one worked ok:

    use Class::Struct qw(struct);
    my($folks, $dad);
    struct Person => [name => '$', age  => '$'];
    struct Family => {head => 'Person', homes => '@'};
    $folks  = 'Family'->new();
    $dad    = $folks->head;
    printf("%s's age is %d\n", $folks->head->name, $folks->head->age);

But this one blows up:

    use Class::Struct qw(struct);
    my($folks, $dad);
    struct Person => [name => '$', age  => '$'];
    struct Family => {head => 'Person', homes => '@'};
    $folks  = 'Family'->new();
    $dad    = 'Person'->new();
    printf("%s's age is %d\n", $folks->head->name, $folks->head->age);

The following one-word patch fixes the problem.


19 years agoWarning on mis-use of 'use lib'
Tom Phoenix [Mon, 26 Jan 1998 06:16:53 +0000 (18:16 +1200)] 
Warning on mis-use of 'use lib'

It's too common for someone to mis-use 'use lib' something like this:

    use lib '/home/mydir/.lib/';

Thus this patch. Cheers!

Credited: M.J.T. Guy <>
Credited: Chip Salzenberg <>


19 years agoFile::Find rewrite
Ilya Zakharevich [Tue, 3 Mar 1998 02:05:38 +0000 (14:05 +1200)] 
File::Find rewrite

This combines find and finddepth into one function.  The main advantage
is that this change allows addition of other configuration options (when
I posted an experimental patch earlier people found 8-10 different options
they wanted from find) except "bydepth" at later time.

Additional advantage is that this merge simplifies maintainance by reducing
number of mostly identical code.

Additionally, with this patch and File::Basename will be required
only if needed.

Here is the speed comparison: on test runs over a directory with 65000
files in 4300 subdirectories the deviation of runtime (either with or
without the patch, after 3 runs to suck all into HD cache) was +-0.5%,
and the slowdown after the patch is applied is circa 1%, so the


19 years agoMath/, fixed use of undefined value.
Abigail [Thu, 12 Mar 1998 11:18:14 +0000 (23:18 +1200)] 
Math/, fixed use of undefined value.

With -w, Math::BigInt spits out warning under certain conditions
about use of undefined values, when adding/subtracting numbers.
Here's a patch. (Against 5.004_04).


19 years agounpacking negatives on Alpha
Achim Bohnet [Tue, 14 Oct 1997 01:58:42 +0000 (13:58 +1200)] 
unpacking negatives on Alpha

 >  > (0) ~ > perl -e 'print unpack("i",pack("i",-1)),"\n"'
 >  > 4294967295
 >  > (0) ~ >
 >  > Should print -1.
 > Looks like an optimizer bug of Digitals GEM based cc.  Compiling
 > pp.c with no optimization

Here's the start of my personal history working around optimizer
bugs (not counting switching off -O).  Patch against 5.004_04.

o09(0) ~/data9/perlsrc/5.004_04/standard/t > perl op/pack.t | tail -2
ok 29
not ok 30
o09(0) ~/data9/perlsrc/5.004_04/standard/t > ../perl op/pack.t | tail -2
ok 29
ok 30
o09(0) ~/data9/cpan/build/C-DynaLib-0.51/DynaLib > perl
ok 1
ok 2
not ok 3; expected "[-65 5000000000 string]", got "[4294967231 5000000000 string]"
o09(0) ~/data9/cpan/build/C-DynaLib-0.51/DynaLib > ~/data9/perlsrc/5.004_04/standard/perl
ok 1
ok 2
ok 3

Still no little test case for Digitals Hot Line.  Maybe next time.


19 years agotwo trivial tweaks to 5.004m5t1
Gurusamy Sarathy [Thu, 5 Mar 1998 11:48:12 +0000 (23:48 +1200)] 
two trivial tweaks to 5.004m5t1


19 years agoTainting propagates from nowhere
Gurusamy Sarathy [Fri, 13 Mar 1998 09:31:31 +0000 (21:31 +1200)] 
Tainting propagates from nowhere

On Thu, 12 Mar 1998 13:47:16 EST, Chip Salzenberg wrote:
>> ---------- Forwarded message ----------
>> Date: Thu, 9 Oct 1997 10:47:28 -0700 (PDT)
>> From: Tom Phoenix <>
>> To:
>> Subject: Tainting propagates from nowhere
>>     $ perl -Tw
>>     sub wazzat { substr "@_", 0 }
>>     wazzat $0; # $0 is tainted
>>     kill 0, wazzat(); # This shouldn't be
>>     <Ctrl-D>
>>     Insecure dependency in kill while running with -T switch at - line 4.

This is due to the reuse of TARG _within_ an op. vec() also suffers from
it. Other ops may have the problem also, but I haven't gone looking.  Of
course, since the problem is a conservative one ("too much paranoia"),
there's no cause for alarm.


19 years agoStatement unlikely to be reached warning
Hans Mulder [Wed, 8 Oct 1997 04:51:51 +0000 (16:51 +1200)] 
Statement unlikely to be reached warning (Larry Wall) wrote:
>: Trevor Blackwell <> wrote:
>: >I propose that the following operators should not generate the
>: >"unlikely to be reached" warning in the shadow of an operator like
>: >exec:
>: >
>: >   exit
>: >   warn
>: >   die
>: >   print
>: "Die" already has that property.  Adding it to "exit" and "warn"
>: sounds reasonable.  I think that "print" should not have that
>: property, because it's quite possible that somebody who mistakenly
>: calls "exec" just happens to put an unrelated "print" statement next.
>Sounds reasonable to me.

Okay, here's a patch over 5.004_04:

p5p-msgid: 1997Dec24.171511.2683516@cor.newman

19 years agoStale SP in pp_substr
Stephen McCamant [Thu, 19 Mar 1998 09:10:00 +0000 (21:10 +1200)] 
Stale SP in pp_substr

Another problem involving SvPV(), uncovered by STRESS_REALLOC.


19 years agoRevised taint hole closer
Chip Salzenberg [Wed, 22 Apr 1998 23:49:00 +0000 (11:49 +1200)] 
Revised taint hole closer

Oops!  I'd forgotten that allowing tainted values in multi-argument
exec() and system() is a _feature_.  Mea culpa....

Here's a revised patch that doesn't break that feature:

Credited: Ilya Zakharevich <>

p5p-msgid: 19980310222127.09350@cyprus

19 years agoAdd HAS_GNULIBC define
Andy Dougherty [Thu, 24 Jul 1997 23:34:57 +0000 (11:34 +1200)] 
Add HAS_GNULIBC define

Subject: [PATCH 5.004_04-m1] Add HAS_GNULIBC define

Configure already computes it anyway, so we might as well get set up to
use it in POSIX.xs.

p5p-msgid: Pine.SUN.3.96.980305115202.9180K-100000@newton.phys

19 years agoConfusing error from perl -e "x'"
Hans Mulder [Thu, 5 Mar 1998 06:12:14 +0000 (18:12 +1200)] 
Confusing error from perl -e "x'"

If one forgets a string delimiting apostrophe, one may
get a confusing error message.  For example

perl -e "x'"


Bad name after x:: at -e line 1.

There's no double colon in there.

I'm aware that ' is an ancient synonymn for ::, but I think
this message is confusing for users who haven't used perl4.


19 years agoMake autouse -w-safe
Ilya Zakharevich [Mon, 8 Dec 1997 11:16:12 +0000 (23:16 +1200)] 
Make autouse -w-safe

This removes the the documented bugs of (together with the
description ;-).  This is checked with _55, but may work with _04
as well.



19 years agoConsider @ARGV to be plain files if inplace (-i)
Chip Salzenberg [Wed, 22 Apr 1998 23:49:00 +0000 (11:49 +1200)] 
Consider @ARGV to be plain files if inplace (-i)

As someone (?) recently observed, Perl's magical handling of filenames
like "ls|" and "|tee foo bar" doesn't make a lot of sense in inplace
editing mode (the -i command line option).

This patch disables magic names in inplace mode.  I tested it on a
file named "echo abc|"; I ended up with files named "echo abc|" and
"echo abc|~".

(Boy am I glad I already did the scutwork for the sysopen()


19 years agoConservative C<*x = undef> patch
Chip Salzenberg [Wed, 22 Apr 1998 23:49:00 +0000 (11:49 +1200)] 
Conservative C<*x = undef> patch

This fits what Tim said he wants:  C<undef *x> clears out everything
in *x, but C<*x = undef> just generates a warning.

p5p-msgid: 19980310163310.48509@cyprus

19 years agoAdditional regex-cache patch
Chip Salzenberg [Wed, 22 Apr 1998 23:49:00 +0000 (11:49 +1200)] 
Additional regex-cache patch

Trial 1 of 5.004_05 includes a patch from me that partially fixes a
bug with detection of duplicate regexes.  At the time I made the
patch, I thought a complete fix was impossible.  However, Ilya has
just pointed out to me that it is possible after all.

Therefore, this patch should be added to to 5.004_05 and also to the
dev track.

p5p-msgid: 19980305104831.38100@cyprus

19 years ago[inseperable changes between Change 886 and Change 887]
Tim Bunce [Fri, 10 Apr 1998 17:44:55 +0000 (17:44 +0000)] 
[inseperable changes between Change 886 and Change 887]

 ------  CORE LANGUAGE  ------

 Title:  "Re: die exits with 0"
  From:  Robin Barker <>
 Files:  perl.c t/op/die_exit.t

 Title:  "for semctl on solaris"
  From:  Graham Barr <>
Msg-ID:  <>
 Files:  doio.c t/op/ipcmsg.t t/op/ipcsem.t

 ------  DOCUMENTATION  ------

 Title:  "Add more 'see also's to perlre.pod.", "Perl regexp /g modifier bug"
  From:  Ilya Zakharevich <>, epeschko@den-mdev1 (Ed
         Peschko), (Peter Richardson)
Msg-ID:  <>,
 Files:  pod/perlre.pod


 Title:  "Update Getopt::Long to 2.16"
  From: (Johan Vromans), Johan Vromans
Msg-ID:  <>,
 Files:  lib/Getopt/

 Title:  "Very *evil* File::CheckTree behavior! (now uses warn/die not
  From:  Eryq <>, Randal Schwartz <>
Msg-ID:  <>, <>
 Files:  lib/File/

 ------  OTHER CHANGES  ------

 Title:  "Add ./emacs/ptags"
  From:  Ilya Zakharevich <>
Msg-ID:  <>
 Files:  emacs/ptags

 ------  TESTS  ------

 Title:  "Avoid stat test failure from build in /tmp (tmpfs)", "Build in /tmp"
  From:  Andy Dougherty <>, Greg Bacon
         <>, (Chris Nandor)
Msg-ID:  <>,
 Files:  t/op/stat.t

 Title:  "for failure with lib/timelocal"
  From:  "M.J.T. Guy" <>, (Jan Dubois)
Msg-ID:  <>,
 Files:  t/lib/timelocal.t

 Title:  "Make "localhost" related failures more clear"
  From:  Paul Hoffman <>
Msg-ID:  <>
 Files:  t/lib/io_sock.t t/lib/io_udp.t

 ------  UTILITIES  ------

p4raw-link: @886 on //depot/maint-5.004/perl: 6dba07070c2cb08ffbc6e00eff60e8f5fc9a7ee8
p4raw-id: //depot/maint-5.004/perl@887

19 years agoLet h2xs read multiple header files
Benjamin Sugars [Mon, 24 Nov 1997 20:55:54 +0000 (08:55 +1200)] 
Let h2xs read multiple header files

I've found it useful to modify h2xs so that it can read multiple
header files in one fell swoop.  In case people think this is a useful
feature, here's the patch that I made.

Credited: Andy Dougherty <>

p5p-msgid: Pine.SOL.3.95.980310091946.25236A-100000@interact

19 years agoFixed Text/ bugs (2)
Jacqui Caren [Sat, 11 Apr 1998 05:44:00 +0000 (17:44 +1200)] 
Fixed Text/ bugs (2)

I recently found two bugs with Text::Wrap::wrap().

  A) Use of /m attribute
  This causes long words to be moved to end of document.
  The example below shows a two test runs with old and new code.

  B) long word split and die
  You currently still die if a long word on the first line exists.
  The long words split code only operates on subsequent lines.

After a bit of thought and a chat with Tim Bunce (on the other side of
the room) I decided to restructure the logic to simplify things a bit.
I believe that the output should not have changed for typical usage but
would appreciate more thorough testing.



19 years agoNew Text::ParseWords
Hal Pomeranz [Sat, 11 Apr 1998 05:44:00 +0000 (17:44 +1200)] 
New Text::ParseWords

I've finally taken the time to fix several embarassing problems with
Text::ParseWords (most of them caused by yours truly).  This version
should be included in the Perl distribution as soon as humanly

Bugs fixed in this release include (but are not limited to):

-- Handling of trailing null fields and fields
   resolving to "false"

-- Unpaired backslashes no longer cause syntax errors

-- No Carp dependencies, does not die() on error

-- No longer an autoloader, since use of the module
   generally requires 80-90% of the module be loaded anyway

Functional improvements/changes include

-- new @nested_quotewords() function which returns list
   of lists, rather than a single long list

-- parsing is no longer a character-by-character affair,
   so performance is significantly improved

-- semantics of $keep are expanded to include /bin/sh-like
   collapsing of backslashes and special "delimiters" keyword
   for preserving delimiters in addition to tokens

-- additional documentation included, documentation updated

-- many more regression tests in parsewords.t

It's better in all ways and I'm tired of fielding bug reports on the old
version.  Let's use this one!

19 years agoBigFloat - small neagtive numbers cause panic
Hugo van der Sanden [Thu, 20 Nov 1997 00:20:33 +0000 (12:20 +1200)] 
BigFloat - small neagtive numbers cause panic

Christopher Bailey wrote:
:the following snippet
:use Math::BigFloat;
:$x = new Math::BigFloat("-0.05");
:$y = new Math::BigFloat("3.4071");
:$z = $x + $y;
:causes a panic in
:(any number less than -0.1 is the same)
:The problem appears to be in the fnorm sub, which returns 'nan'

The problem is actually in stringify, which fails to convert from the
normalised form "-5E-2" correctly:
  work% perl -le 'use Math::BigFloat; print Math::BigFloat->new("-0.05")'

The attached patch appears to fix it:
  work% perl -Mlib=. -le 'use Math::BigFloat; print Math::BigFloat->new("-0.05")'


19 years agoMore toke.c commentary; fix oddity
Hugo van der Sanden [Wed, 4 Mar 1998 00:18:48 +0000 (12:18 +1200)] 
More toke.c commentary; fix oddity

Fills in some more detail about scan_const. Also collapses the
remarkably strange construct:

  ... (lex_inwhat & OP_TRANS) ? "" : ""

.. which I can only assume is there for hysterical reasons.


19 years ago[inseperable changes between Change 872 and Change 886]
Tim Bunce [Fri, 10 Apr 1998 14:35:34 +0000 (14:35 +0000)] 
[inseperable changes between Change 872 and Change 886]

Changes relating primarily to portability.


 Title:  "ExtUtils/ changed to use ld -rpath on IRIX"
  From:  "W. Phillip Moore" <>
Msg-ID:  <>
 Files:  lib/ExtUtils/

 Title:  ""ODBM_File.c", line 275: NULL undefined"
  From: (Paul Marquess)
Msg-ID:  <>
 Files:  ext/ODBM_File/ODBM_File.xs

 ------  PORTABILITY - GENERAL  ------

 Title:  "osname=unixware, osvers=2.03, archname=i386-unixware
  From:  Tom Hughes <>
Msg-ID:  <>
 Files:  hints/

 Title:  "hints/ patch for BSDI 3.1"
  From:  Jan-Pieter Cornet <>
Msg-ID:  <6fbip6$3cp$>
 Files:  hints/

 Title:  "Remove BIND_NOSTART from DynaLoader for HP"
  From:  Keong Lim <>
Msg-ID:  <>
 Files:  ext/DynaLoader/dl_hpux.xs

 Title:  "5.004_(04|63)] Close VMS security hole"
  From:  Charles Bailey <>
Msg-ID:  <>
 Files:  vms/vms.c

 Title:  "Perl5.004_04m4t4 *almost* makes it for VMS", "Updated
         vms/perly_c.vms and vms/perly_h.vms"
  From:  Andy Dougherty <>, Dan Sugalski
         <>, (Larry Wall)
Msg-ID:  <>,
 Files:  vms/perly_c.vms

 Title:  "VMS patches to 5.004_03 (excluding installperl and timelocal.t)"
  From:  Charles Bailey <>
Msg-ID:  <>
 Files:  lib/File/ lib/File/ vms/config.vms vms/descrip.mms
         vms/ vms/ vms/vms.c vms/ext/

 Title:  "hints/ (MkLinux / PPC)"
  From: (Chris Nandor)
Msg-ID:  <v0213050cb06c19682a25@[]>
 Files:  hints/

 Title:  "new hints/"
  From:  "M.J.T. Guy" <>
Msg-ID:  <>
 Files:  hints/

p4raw-link: @872 on //depot/maint-5.004/perl: 0b85608df162729d39cb0f96c9f88c7de0a3ceab
p4raw-id: //depot/maint-5.004/perl@886

19 years ago[Linux] POSIX::_[PS]C_.+ bug (add HINT_SC_EXIST)
Yutaka OIWA [Tue, 5 Aug 1997 10:03:01 +0000 (22:03 +1200)] 
[Linux] POSIX::_[PS]C_.+ bug (add HINT_SC_EXIST)

This is a bug report for perl from,
generated with the help of perlbug 1.20 running under perl 5.00404.


19 years hints file clarification suggestion
Unknown Contributor [Sat, 11 Apr 1998 02:35:00 +0000 (14:35 +1200)] hints file clarification suggestion

Line 47 of the hints file indicates a work-around for
fixing a "too much defining problem". I would like to offer a
clarification to this for those who may not be aware that the
information listed is a SINGLE ccflag entry, not a list of entries
(separated by commas). The original and suggested clarifications
are list below:

# If you get a message about "too much defining", you might have to
# add the following to your ccflags: '-Wp,-H256000'

# If you get a message about "too much defining", as may happen
# in HPUX < 10, you might have to append a single entry to your
# ccflags: '-Wp,-H256000'
# NOTE: This is a single entry (-W takes the argument 'p,-H256000').

Hopefully with the official end of HPUX 9.X support in Dec. 1998,
this will no longer be much of a problem. You can't imagine how much
time I spent with variations of this ccflag before I got it to work.
This may be due to by newness to cc flags in 9.X, but who knows...

Matt Groener,

[Please do not change anything below this line]


19 years agoRe: VMSperl crashes on -Mblib argument
Charles Bailey [Mon, 1 Dec 1997 11:11:02 +0000 (23:11 +1200)] 
Re: VMSperl crashes on -Mblib argument

In article <>, Henrik Tougaard <> writes:
> Whenever I try to use perl "-Mblib" all I get is a register dump.
> %SYSTEM-F-ACCVIO, access violation, reason mask=04, virtual address=7702BEA8,
> PC=8048EC2C, PS=0000001B
>   Improperly handled condition, images exit forced.
> and so on.

Got it -- was expecting Unix syntax, so passed a mixed VMS-Unix syntax
filespec into do_fileify_dirspec(), which triggered an infinite recursion.
Patch appended.

Normally these routines don't look to see whether the input is mixed VMS-Unix
(GIGO), but this is an unusually nasty case, so the patch includes a check
for it.

> I haven't been able do get a debugging version of perl do work properly, so I
> don't know if I can reproduce the error under the debugger.

Hmm.  What problems have you run into?

p5p-msgid: 1997Dec10.004439.2635060@cor.newman

19 years agoUpdated, non-wordwrapped, patch to README.VMS
Dan Sugalski [Sat, 11 Apr 1998 02:35:00 +0000 (14:35 +1200)] 
Updated, non-wordwrapped, patch to README.VMS

Here's a patch to README.VMS to bring it up to snuff. Suitable
for both 5.004_05 and 5.004_5x.


19 years agoRe: Perl online documentation on OpenVMS
Peter Prymmer [Thu, 19 Mar 1998 01:39:09 +0000 (13:39 +1200)] 
Re: Perl online documentation on OpenVMS

This patch was taken against the 5.004_04.

Peter Prymmer


19 years ago5.004_04-m1] Linux shouldn't use -lnet
Andy Dougherty [Mon, 2 Mar 1998 23:56:33 +0000 (11:56 +1200)] 
5.004_04-m1] Linux shouldn't use -lnet

Linux systems don't have a libnet that's relevant for Perl.  Kaffe
installs one, but it apparently only confuses Configure :-).

p5p-msgid: Pine.SUN.3.96.980305115843.9180M-100000@newton.phys

19 years ago5.004_04-m1] Allow overrides in hints/
Andy Dougherty [Tue, 3 Mar 1998 22:58:58 +0000 (10:58 +1200)] 
5.004_04-m1] Allow overrides in hints/

Allow Configure command-line overrides in new hints/ file.

p5p-msgid: Pine.SUN.3.96.980305115956.9180N-100000@newton.phys

19 years agoOff-by-one error with OS2::PrfDB
Ilya Zakharevich [Thu, 16 Oct 1997 08:29:26 +0000 (20:29 +1200)] 
Off-by-one error with OS2::PrfDB

(Found when testing malloc.c from jumbo malloc patch with -DDEBUGGING,
which is much more strict than the standard one.)  The patch should be
applicable both to 4_04 and 4_53.



19 years agoalpha-dec_osf 5.0
Spider Boardman [Sat, 20 Dec 1997 04:03:04 +0000 (16:03 +1200)] 
alpha-dec_osf 5.0

Subject: NOT OK: 5.004_04 on alpha-dec_osf 5.0 (Digital UNIX X5.0-13)

Pursuant to my earlier message about 5.004_56, here's the
corresponding pieces which apply to 5.004_04 (aside from the
Configure patch which I posted earlier):

p5p-msgid: 199712232305.SAA08359@Orb.Nashua.NH.US

19 years agoBuilding Perl on AIX 4+ with shared libraries and dynamic loading
Juan Gallego [Wed, 30 Apr 1997 10:50:28 +0000 (22:50 +1200)] 
Building Perl on AIX 4+ with shared libraries and dynamic loading

To whom it may concern,

I'm in the process of compiling/installing Perl 5.004_01 (yes, I know, I
should have done it ages ago :) for AIX 4.1.x and I found that the
problems I reported in November 96 (search Dejanews for article
<567m0g$> in comp.lang.perl.misc) are still present,
but not the solutions. In essence, the problem results from a change in
the default alignment of the text, data and loader sections in the shared
libraries and executables. The only modification to the source are in
hints/ I include the unified diff below.

Hoping you find this babble of some use,


19 years agohints/ d_setrgid d_setruid
Jarkko Hietaniemi [Wed, 25 Feb 1998 03:55:27 +0000 (15:55 +1200)] 
hints/ d_setrgid d_setruid

Subject: [PATCH] 5.004_61: hints/