Use of qw(…) as parentheses is deprecated – Solución

En uno de los updates de Perl (5.14) se deprecó una construcción del lenguage que provoca errores en scripts que tengamos desarrollados. Por ejemplo el plugin de Munin apache_processes en su versión para Ubuntu 12.04.

En un script Perl con este error veremos un fragmento de código como:

foreach my $type qw "busy idle" {
print_thresholds("$type$port");
}

De lo que el compilador se está quejando es que el fragmento que contiene los items sobre los que iterar está sintácticamente incorrecto.

Para solucionarlo y que deje de dar ese Warning sólamente debemos envolver con paréntesis dicha parte. Por ejemplo:

foreach my $type (qw "busy idle") {
print_thresholds("$type$port");
}

Grácias a esta simple corrección nuestros scripts Perl volverán a funcionar como antes y por ejemplo podremos utilizar el plugin apache_processes de munin.

Ello se debe a que la construcción munin-node-configure –suggest no se quejará de que aparecen textos extraños en la salida del comando apache_processes.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *