develooper Front page | perl.perl5.porters | Postings from July 2003

This Week on perl5-porters (14-20 July 2003)

Rafael Garcia-Suarez
July 21, 2003 12:38
This Week on perl5-porters (14-20 July 2003)
Message ID:
This Week on perl5-porters (14-20 July 2003)
  One week after the second release candidate of perl 5.8.1, and as
  expected, problems were found, and bugs fixed. Meanwhile, development
  continues. Read all details in this week's summary.

Tied hashes and scalar context
  Using a tied hash in scalar context gives in maintperl and in bleadperl
  a fatal error : this was added two months ago (to test for the emptiness
  of a tied hash, you should use keys()). However, this new fatal error
  was integrated into 5.8.1-RC2 and this appears to be a surprising
  change, probably not suited to a maintenance release (bug #22973).

5.8.1-RC2 incompatibilities
  Arthur Bergman finds that the type of a reference to an element of a
  tied hash is now LVALUE instead of SCALAR. This is, strictly speaking,
  correct, regarding the internal implementation, but incompatible with
  5.8.0. Moreover one could argue that references to tied hash elements
  should behave the same way than references to regular hash elements.
  Dave Mitchell proposes to "make tie-specific LVs stringify to SCALAR,
  while other LVs remain as LVALUE."

A case of $1 scoping
  Steve Grazzini demonstrates that $1 and the other digit-variables are
  not always dynamically scoped to the enclosing block, when qr// comes
  to play. Arthur explains what happens in the guts of perl, but this
  behaviour is nevertheless surprising (or so do I imagine).

Improving B::Deparse and other backends
  Stephen McCamant did some work on B::Deparse and B::Concise. Firstly, he
  sent a patch to help Deparse (and other backends) to figure out the
  order in which BEGIN blocks and "use" declarations are issued, by
  numeroting them just like other statements. Secondly, he made several
  suggestions about adding information in the op tree for figuring out the
  place of those statements relatively to scoping operators.

  He also sent a fix for an obscure deparsing bug, related to
  ithread-specific optrees, reported a while back by Alexey Tourbin.

Signing CPAN distributions
  Tels explains why external signatures are more secure than embedded ones
  for CPAN packages. Autrijus Tang then added to CPANPLUS the ability to
  check the integrity of a package against a separate .sig file.

Hash key placeholders
  Marcus Holland-Moritz finds that "since 5.8.0, having hash values set to
  &PL_sv_undef causes the hash entries to be treated as 'placeholders'.
  Thus, they do not appear when checking with hv_exists() or iterating
  over the hash." And this new behaviour is under-documented.

  He proposes that, instead of using PL_sv_undef to mark placeholders
  (which are used to implement restricted hashes), a new global
  PL_sv_placeholder should be created (and proposes a patch against RC2).

Perlbug attack
  Due to an accident and to the OSCON distraction, bug reports weren't
  forwarded to the p5p mailing list for two weeks. As a consequence, after
  Robert Spier fixed the mail stuff, we received about 40 of them in a few
  minutes ! Some of them were already known (or even fixed), though.

  Moreover, Tony Bowden walked through the bug database and found a large
  number of bugs that were already fixed and should have been closed. This
  led also to a significant number of fixes.

Our Selection of Bugs
  Dave Mitchell fixed bug #3284 : the call $x->isa('UNIVERSAL') wasn't
  returning the correct value (except the first time) when @ISA was empty.

  Alex Davies reports (bug #22967) that study() behaves incorrectly when
  invoked from an XML::Parser callback. Is it a bug in study() or in
  XML::Parser ?

  XML::Parser and Storable also appear to interact badly since Storable
  understands utf-8 keys or something. (Bug #23004.)

  Ilya Martynov reports that the syntax $hash{BAREWORD} doesn't work with
  perl 5.8.0 and later when BAREWORD contains non-ASCII chars. Bug #22969.
  This used to work with 5.6.x.

  sauoq reports that using a tainted string as a hash key untaints it.
  (Bug #22974.)

  Alexey Tourbin finds that tied values were mishandled by formats. Dave
  Mitchell proposed a fix, and Nick Clark proposed a regression test. (Ah,
  this one doesn't have a bug id.)

  Iain Truskett reports an error in the docs for "Switch" : one should

      case (\@array) { statement(); }

  instead of

      case (@array) { statement(); }

  But perhaps is it better to fix the module to match the docs ? (Bug

  Jerrad Pierce is testing his module IO::Pager for portability and runs
  into problems, because behaviour changes depending on perl version and
  IO library. (Bug #23043)

In Brief
  Jim Cromie is trying to get B::Generate working with recent perls.

  Tassilo von Parseval is working on h2xs, although he finds it hopelessly
  unmaintainable. He considers rewriting it from scratch.

  Chip Salzenberg tries to find a way to add additional options to
  File::Copy::copy() (his primary goal being to add "cp -p" behaviour).
  Slaven Rezic proposes that File::Copy::copy() could be made to support
  most of the POSIX or GNU options of cp(1). Which seems to involve a
  Getopt-like interface.

  Tim Jenness found out that the ** operator was broken in RC2. Stephen
  McCamant fixed it.

  Ilya Martynov backported Data::Dumper on CPAN. The latest and greatest
  Data::Dumper is now available for perl 5.6.1 !

About this summary
  This summary was written by Rafael Garcia-Suarez. Weekly summaries are
  published on and on a mailing list, which
  subscription address is Comments,
  corrections, additions, and suggestions are (as always) welcome. Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About