Use of qw(...) as parentheses: deprecated in 5.14, removed in 5.18

Dominic Hargreaves dom at earth.li
Sun May 12 22:22:38 UTC 2013


On Sat, May 11, 2013 at 05:04:08PM +0300, Niko Tyni wrote:
> Hi Dominic,
> 
> do you still happen to have the rebuild logs from 5.14 around?
>
> My first tentative rebuild tests turned up a couple of build failures
> (libfile-libmagic-perl_0.96-3, libfile-mmagic-xs-perl_0.09006-4)
> because of this (from 5.18.0-RC1 perldelta.pod):
> 
>    qw(...) can no longer be used as parentheses
>        "qw" lists used to fool the parser into thinking they were
>        always surrounded by parentheses.  This permitted some surprising
>        constructions such as "foreach $x qw(a b c) {...}", which should
>        really be written "foreach $x (qw(a b c)) {...}".  These would
>        sometimes get the lexer into the wrong state, so they didn't
>        fully work, and the similar "foreach qw(a b c) {...}" that one
>        might expect to be permitted never worked at all.
> 
>        This side effect of "qw" has now been abolished.  It has been
>        deprecated since Perl v5.13.11.  It is now necessary to use real
>        parentheses everywhere that the grammar calls for them.
> 
> The 5.14 build logs of these packages have the warning
>  Use of qw(...) as parentheses is deprecated
> so bugs could be filed based on just grepping for that.
> 
> It looks like those two packages have the error in bundled helper code
> (inc/Module/Install/XSUtil.pm, inc/Devel/CheckLib.pm) so this may be
> a more common problem. Both Module-Install-XSUtil and Devel-CheckLib
> themselves have since been fixed.

My rebuilds have finished now, and only three package have syntax
error messages on logs - the two you mentioned plus
libopengl-xscreensaver-perl.

The grep you suggest (against 5.16 logs, not 5.14 ones) also mention
libcrypt-gcrypt-perl, libimager-qrcode-perl, libnet-dns-perl, xacobeo,
some of which are currently failing for other reasons.

Overall, 111 out of 636 packages rebuilt failed. Quite a few of these
will be gcc/eglibc related failures, or failures to install build-deps,
so it's not as scary a number as it first appears. I have started working
through these and filing bugs, with more to come over the next week.
The are collected at
<http://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=perl-5.18-transition;users=debian-perl@lists.debian.org>

In other news,
<https://buildd.debian.org/status/package.php?p=perl&suite=experimental>
looks good so far, with only hurd failing (as it has done for a while
now).

-- 
Dominic Hargreaves | http://www.larted.org.uk/~dom/
PGP key 5178E2A5 from the.earth.li (keyserver,web,email)




More information about the Perl-maintainers mailing list