Re: [PATCH v2 2/3] gitweb/gitweb.perl: remove use of qw(...) as parentheses
Dnia sobota 19. lutego 2011 17:06, Ævar Arnfjörð Bjarmason napisał:
Show 16 quoted lines
> On Sat, Feb 19, 2011 at 16:54, Jakub Narebski <jnareb@gmail.com> 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.Show 5 quoted lines
>> 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 );
Show 16 quoted lines
> 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 <jnareb@gmail.com>
--
Jakub Narebski
Poland