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.
Continuing a thread from last week about the
last statement used to exit an eval() block:
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.
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
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.
Marcus Holland-Moritz, who implemented a couple of weeks ago new modifiers (
>) for pack() templates, added a way to group these with parentheses.
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.
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
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.
This summary was written by Rafael Garcia-Suarez. Weekly summaries are published on http://use.perl.org/ and posted on a mailing list, which subscription address is firstname.lastname@example.org. Comments and corrections welcome.