This Week on perl5-porters (17-23 November 2003)

This Week on perl5-porters (17-23 November 2003)

Due to my laziness, or perhaps to the lack of traffic on perl5-porters this week, this summary will be rather short, but hopefully long enough to provide your weekly dose of perl core information. Read on.

Hash revamp

Nicholas Clark proposes to refactor the code that manipulates hashes in the code ; and he does so.

Before :

After :

He also fixed a remaining bug in the copy-on-write internal implementation (not enabled in default builds).

More hashes

Alan Burlison's module Solaris::Kstat, which implements a tied hash entirely in XS code. This module tends to dump cores with perl 5.8.2 ; this is due to the fact that its implementation clashes with the new restricted (read-only) hashes.

Digging further, he notices that in perl 5.8.2, locking an empty hash produces a core dump, and provides a fix.

Non-hash stuff (or, In Brief, miscellaneous issues)

Paul Szabo proposes a patch to solve some security issues in suidperl. Nobody comments.

Damian Menscher reports that under some conditions, running the perl test suite can change the file permissions for /dev/tty. This unfortunate side-effect is filed under bug id #24521.

Moeller Wolf-Dietrich reports (bug #24508) a case where the concatenation operator has side-effects and produces the wrong result. Rafael fixes it by disabling a buggy optimization.

Salvador Fandiño posts a patch for MakeMaker, to add support for modules written in C++.

Chris Nandor reports that $^E, a system-specific equivalent for $!, sometimes changes unexpectedly. Dan Sugalski comments that, as it reflects the C variable errno, it can change at any times, whenever a system call or another library function (such as malloc()) sets it. However, in this case, errno should be saved and restored when it's copied in the $^E scalar (this happens correctly for $!). Rafael fixes it.

Daniel Berger can't build a 64-bit perl on Solaris with gcc. Andy Dougherty provides a fix. (bug #24439.)

Nicholas Clark wonders about the nuances involved in various ways of creating mortal scalars in the perl core. The answers involve archeology.

Leon Brocard is getting confused about versions and Perl, and asks for a more or less reliable way to sort versions. John Peacock suggests

Iain Truskett reorganizes a bit the documentation for PerlIO layers, which is shuffled between the perlrun and PerlIO man pages.

Ton Hospel makes the regexp engine panic in 23 characters (bug #24524).

Bug #24526 demonstrates that index() and rindex() still don't play nice with UTF-8 locales.

About this summary

This summary was brought to you by Rafael Garcia-Suarez. Weekly summaries are available on and via a mailing list, which subscription address is Feedback (and patches) welcome.