Perl - ошибка "Use of qw(...) as parentheses is deprecated at..."

Версия для печатиОтправить другуPDF version

Perl логотип

После очередного обновления софта, обнаружил, что некоторые из скриптов, написанных на Perl, сыпят  в /var/log/httpd-error.log сообщения о ошибках. Пример сообщений:

[Mon Mar 25 16:22:38 2013] [error] [client 10.227.206.45] Use of qw(...) as parentheses is deprecated at /home/test/user.pl line 644., referer: http://test.com/test/user.pl?a=user&id=7
[Mon Mar 25 16:22:38 2013] [error] [client 10.227.206.45] Use of qw(...) as parentheses is deprecated at /home/test/user.pl line 848., referer:  http://test.com/test/user.pl?a=user&id=7
[Mon Mar 25 16:22:38 2013] [error] [client 10.227.206.45] Use of qw(...) as parentheses is deprecated at /home/test/user.pl line 849., referer:  http://test.com/test/user.pl?a=user&id=7
 

Связано это с синтаксисом функции qw. Теперь саму функцию тоже необходимо брать в скобки. Рассмотрим на примере ошибки в скрипте, строка 644 (в вашем случае, номер строки с ошибкой смотрите в лог-файле).

Первоначальный код (ошибочный):

($psevdo)=&Get_filtr_fields qw( psevdo );

Исправленный код (корректный):

($psevdo)=&Get_filtr_fields (qw( psevdo ));

После заключения функции в скобки, ошибки в лог перестали сыпаться.

 

Ваша оценка: Нет Средняя: 5 (3 голоса)

Вставай, Україно!

Литература

Вирус отличается от антивирус тем, что распространяется бесплатно.