Subject: Re: [PATCH v2 2/3] gitweb/gitweb.perl: remove use of qw(...) as parentheses

From: Jakub Narebski <[email-masked]>
Date: Sun, 20 Feb 2011 15:42:46 +0100

Dnia sobota 19. lutego 2011 17:06, Ævar Arnfjörð Bjarmason napisał:
> On Sat, Feb 19, 2011 at 16:54, Jakub Narebski <[email-masked]> wrote:
>> On Sat, 19 Feb 2011, Ævar Arnfjörð Bjarmason wrote:
>>
>>> Using the qw(...) construct as implicit parentheses was deprecated in
>>> perl 5.13.5. Change the relevant code in gitweb to not use the
>>> deprecated construct. The offending code was introduced in 3562198b by
>>> Jakub Narebski.
>>
>> It is strange that Perl introduces such backwards incompatibile change
>> (well, actually will introduce, as 5.13.x is development branch leading
>> to future Perl version 5.14).
>>
>> qw{} is described in perlop(1) as "word list" operator, so one would
>> suppose that it generates a list.
> 
> It does, but it wasn't supposed to generate parens for you.

[...]
>> Hmmm... does it affect only foreach loop, or dows it affect also other
>> places, like
>>
>>      use POSIX qw( setlocale localeconv )
>>      @EXPORT = qw( foo bar baz );

[...]
> No. This is being deprecated because qw(foo bar) is supposed to mean
> "foo, "bar", not ("foo", "bar"). I.e. this doesn't compile:
> 
>     for my $i "a", "b", "c" { }
> 
> So neither should this:
> 
>     for my $i qw(a b c) {}
> 
> But these both work:
> 
>     for my $i ("a", "b", "c") { }
>     for my $i (qw(a b c)) {}
> 
> All of your other examples could have used a list without implicit
> parens. So this is the only change that's needed in gitweb.

Thanks for the explanation.  It makes sense.  So:

Acked-by: Jakub Narębski <[email-masked]>

-- 
Jakub Narebski
Poland