This Week on perl5-porters (3-9 May 2004)

This Week on perl5-porters (3-9 May 2004)

On the menu of the P5P summary this week, you will find language constructions, segmentation faults, proposals for new tied methods, pronunciation issues, and (in fine) a few bugs.

More on last

Continuing a thread from last week about the last statement used to exit an eval() block: last and next, when used to exit from a subroutine, not only exit, but also branch to the specified loop/label of the caller. This is definitively a feature, since (as Tim Bunce remarked) Test::More::skip() uses this, and (as Hugo van der Sanden pointed out), Apocalypse 12 uses this to define method lookup strategies.

open pragma segfault

Tomasz Pala reports (bug #29437) a case of recursion in perl's character encoding routines, which obviously (once diagnosed) leads to stack recursion and to segmentation fault. The sample code involves somehow the open pragma.

Truncation of tied filehandles

Dan Boorstein proposed a patch against bleadperl to add a TRUNCATE method to tied filehandles. Tassilo von Parsval commented that this new method should probably be made optional, for simplicity and compatibility.

More pack() work

Marcus Holland-Moritz, who implemented a couple of weeks ago new modifiers (< and >) for pack() templates, added a way to group these with parentheses.

Weak references problems in 5.8.4

Stas Bekman reported that Scalar::Util::weaken() (used to make weak references) has new problems in perl 5.8.4 (as it attempts to free unreferenced scalars, unveiling a deeper malfunction.) As those problems don't appear in bleadperl, Dave Mitchell does some investigation about the patches which caused it, and proposes a solution -- a patch from blead to integrate in maint.

How do you say !~?

Yitzchak noticed that using !~ on an uninitialized value reports the warning as having occured in a not operation, which is not exactly the case, and proposed to change the message; which raised the question, what is actually the name of the !~ operator?

In Brief

Dan Dascalescu reported (bug #29346) that passing an undefined argument to the int() or abs() built-ins produces the Use of uninitialized value twice. Another history of magic handled twice.

H. Merijn Brand is back on Cygwin smokes. This time, there were some IPC::SysV failures; Yitzchak Scott-Thoennes pointed out that a service needs to be started on Cygwin to make them work.

David Muir Sharnoff reported that Scalar::Util::refaddr() (a function that returns the memory address of the reference it gets passed) doesn't work when magic is somehow involved (bug #29395). Marcus fixed this.

About this summary

This summary was written by Rafael Garcia-Suarez. Weekly summaries are published on and posted on a mailing list, which subscription address is Comments and corrections welcome.