This Week on perl5-porters (9-15 December 2002)
  Busy week for the Perl 5 porters : lots of patches were sent. In the
  discussion, several curious behaviors of perl were also explained, for
  the enlightenment of all. Ain't it interesting ?

Deparse barewords with leading hyphens
  Yves Orton remarked that the popular syntax

      my $hashref = { -foo => "bar" };

  doesn't seem to be properly deparsed by B::Deparse, which turns the hash
  key into "-'foo'". As Stephen McCamant points out, this is still correct
  however, because "if you apply the unary minus operator to a string that
  starts with a letter or _, it prepends "-" to the string."

      http:[EMAIL PROTECTED]/msg89762.html

Debugger regression
  David Dyck noticed (bug #19017) that the x debugger command doesn't
  display lexical variables any longer in bleadperl (this works fine in
  5.8.0 and before). Dave Mitchell identified and fixed the bug, which was
  introduced by one of his patches, and explained how the debugger is
  actually able to do things like this.

      http:[EMAIL PROTECTED]/msg89794.html

%z in strftime()
  Jarkko Hietaniemi grumbled about the %z strftime() format, recently
  introduced. This format appears to be non-POSIX, for some values of the
  POSIX standard. Finally, as it can't be tested portably, Jarkko removed
  the tests for it from the POSIX test suite.

      http:[EMAIL PROTECTED]/msg89791.html

Compile-time hints
  Rafael Garcia-Suarez proposed a master plan to reconsider the way
  compiler hints are implemented. The compiler hints are the mechanism
  that make lexically scoped pragmas work. The need to make hints more
  extensible and more flexible has been discussed several times since last
  year, see for example an older summary :

      http://dev.perl.org/perl5/list-summaries/p5p-200208-1.pod.html

  Rafael's detailed proposal and first patch, and the start of the
  relevant thread, are here :

      http:[EMAIL PROTECTED]/msg89822.html

goto and redo
  Mark-Jason Dominus reported bug #19061, which can be summarised as
  follows : if goto() is used to jump in the middle of a block which has a
  label "FOO", a "redo FOO" in this block won't be able to restart it. In
  other words :

      goto FOO; BAR:{ FOO: print 1; redo BAR; }

  emits an error `Label not found for "redo BAR"'.

  Stephen McCamant explained this specific behavior, which seems to be
  hard to change.

      http:[EMAIL PROTECTED]/msg89886.html

In brief
  Nicholas Clark suggested a performance enhancement by reordering code in
  pp_entersub() (a C function which implements a Perl subroutine call).

      http:[EMAIL PROTECTED]/msg89810.html

  Nicholas Clark suggested also another potential improvement : replace
  the %s in the printf-like formats in the core by %_, when the argument
  is an SV*. %_ is an internal-only printf format hack, that doesn't seem
  to be widely used anymore in the core, I wonder why.

      http:[EMAIL PROTECTED]/msg89813.html

  Ton Hospel reported several obscure bugs on regular expressions (bugs
  #19048, #19049, #19050, #19078, and #19134, no less). Some of them were
  already known or corrected.

  John Peacock proposed a small change in the implementation of v-strings,
  consecutive to some earlier critics regarding the consistency of the
  current behavior.

      http:[EMAIL PROTECTED]/msg89649.html

  Various people reported that the tests for POSIX are quite noisy those
  days, spitting out strange error messages like "Unbalanced string table
  refcount". Dave Mitchell and Nicholas Clark provided fixes and tests.
  (Bug #19022.)

  Craig Berry, back on the VMS port front, asks what the command-line flag
  "-IFoo::Bar" (found in a regression test) is supposed to do. The answer
  is simple : it should put a directory "Foo::Bar" in @INC (at least on
  platforms that accept a colon in file names).

  Ilya Zakharevich, back on the OS/2 port front, sent six various patches
  in a row (not all related to OS/2, several being related to MakeMaker).

  Tels noticed that the modulus (%) operator works only on integers.
  Non-integers arguments to % are truncated. If you want a modulus that
  works on floats, use "bignum".

      http:[EMAIL PROTECTED]/msg89995.html

About this summary
  This summary brought to you in time by Rafael Garcia-Suarez, both on
  http://use.perl.org/ and via a mailing list, which subscription address
  is [EMAIL PROTECTED] Comments and corrections are, as
  always, welcome.

Reply via email to