This Week on perl5-porters (28th October / 3rd November 2002)
  This week's summary features UTF8 and locale incompatibility problems,
  discovered on RedHat 8, but pertaining to UTF8 locales ; various bugs
  fixed ; various bugs discovered ; the "//" operator reappearing shortly ;
  and a new way to consider goto harmful.

Problems with RedHat 8
  Paul Marquess reported that the test suite for Compress::Zlib fails on
  the newest RedHat 8.0. This problem is due to a string holding binary
  data which, once written to a file, gets apparently corrupted.

  Gurusamy Sarathy pointed out that marking the output filehandle with
  binmode() solves the problem. In fact, RedHat 8's default configuration
  apparently use UTF-8 locales, which are recognized by perl 5.8.0.
  Gurusamy quoted the appropriate paragraph from the perldelta manpage for
  perl 5.8.0 :

      Note for code authors: if you want to enable your users to use UTF-8
      as their default encoding but in your code still have eight-bit I/O
      streams (such as images or zip files), you need to explicitly open()
      or binmode() with ":bytes" (see perlfunc/open and perlfunc/binmode),
      or you can just use binmode(FH) (nice for pre-5.8.0 backward
      compatibility).

  Tom Horsley added that there are probably additional bugs in RedHat 8.0
  Unicode handling, judging from mysterious coredumps from system
  libraries.

  Finally, Jarkko Hietaniemi proposed a patch to fix UTF-8 enabling via
  locales. The LANGUAGE environment variable should not be used (as it is
  in 5.8.0) to enable UTF-8.

      http://www.perldoc.com/perl5.8.0/pod/perldelta.html#PerlIO-is-Now-The-Default
      http://archive.develooper.com/perl5-porters@;perl.org/msg88580.html

AUTOLOAD subroutines from undefined stashes
  Jan Dubois reported a bug on AUTOLOADed subroutines (bug #18113, also
  reported previously as #17967) : AUTOLOAD is not called on packages that
  haven't been encountered by perl before. This used to work with perl
  5.6.1, but is broken with perl 5.8.0. Gurusamy Sarathy provided a fix.

      http://archive.develooper.com/perl5-porters@;perl.org/msg88519.html

goto considered harmful in __DIE__ handlers
  Peter Scott reported an interesting behavior : when using a magical
  "goto" to exit from a __DIE__ handler, one could generate an infinite
  loop :

      $SIG{__DIE__} = sub { goto &foo };
      sub foo { print "foo\n"; die "rethrow" }
      die "throw";

  Whether it's actually a bug is open to discussion.

      http://archive.develooper.com/perl5-porters@;perl.org/msg88578.html

B::* adjustments
  Yitzchak Scott-Thoennes remarked that B::Concise doesn't handle well the
  new "//" and "//=" operators (bug #18175). Stephen McCamant sent a fix,
  but a similar problem on other B:: modules (at least B::Terse) should be
  fixed as well.

      http://archive.develooper.com/perl5-porters@;perl.org/msg88595.html

Tied hashes in boolean context
  Bug #18186 was already reported as #17718 : one can't test the emptyness
  of a tied hash by using it in scalar context. Yitzchak points out that
  it's difficult to fix, and explains why. Mark-Jason Dominus proposed an
  alternative solution (a HASHSIZE method), which was already suggested a
  while back by Rick Delaney, and rejected at this time.

      http://archive.develooper.com/perl5-porters@;perl.org/msg88626.html

In brief
  Autrijus Tang reported that uc(), lc() and ucfirst() don't appear to
  work correctly on the right side of "s///e" expressions, applied on
  UTF-8 strings. Strangely, this bug (#18107) doesn't affect lcfirst().

  Mark Pease found a problem on offset calculations in regular expressions
  (bug #18154) and offered a patch.

  Nicholas Clark proposed to replace the current implementation of the
  makefile target "regen_headers" by a perl script, which he provided.

  Rafael Garcia-Suarez asked why DESTROY is called in scalar context (and
  proposed a patch to have it called in void context), and faced Warnock's
  dilemma.

  Abhijit Menon-Sen and Slaven Rezic fixed a problem with the ".."
  operator, that didn't handle well some cases where the operands were
  strings ("-4".."0" and "-4\n".."0\n"). (bugs #18114 and #18165.)

About this summary
  This summary brought to you by Rafael Garcia-Suarez. It's also available
  via a mailing list, which subscription address is
  [EMAIL PROTECTED] Comments and corrections are, as
  always, welcome.

Reply via email to