2012-02-02 15 views
7

código de seguimiento no es aceptada por el crítico, la gravedad 4:Perl crítico: Se utiliza la coma para separar sentencias

return { 
    'debug' => $debug, 
    'identifier' => $identifier 
}; 

consigo este error:

# Perl::Critic found these violations in "filename.pl": 
# Comma used to separate statements at line 356, column 3. See pages 68,71 of PBP. (Severity: 4) 

Pero este código es aceptado sin ninguna observación:

my $result = { 
    'debug' => $debug, 
    'identifier' => $identifier 
}; 

return $result; 

¿Es realmente mejor escribir mi declaración utilizando una variable temporal, o el crítico está equivocado al detectar a Comma used to separate statements mientras estoy construyendo y devolviendo un hashref?

+0

¿Ayudaría si escribe return '({....});'? – Ingo

+0

No puedo reproducir este comportamiento. ¿Qué versión de 'Perl :: Critic' estás usando? – Borodin

+0

No puedo reproducir el problema: 'perlcritic --brutal -s ValuesAndExpressions :: ProhibitCommaSeparatedStatements so9110962.pl␤so9110962.pl fuente OK' Quizás actualice PPI y Perl :: Critic? – daxim

Respuesta

7

Encontré este error en la versión 1.105, desapareció en la versión 1.116. Se arregló en algún lugar entre allí.

La corrección no se menciona en los registros de cambios, pero se mencionan los cambios de PPI. Puede haber sido un error de PPI

+0

Gracias, actualizar a la última versión de hecho ayudó (y creó una nueva lista de críticas para el código que previamente pasó, también - ¡yay!:]) – Konerak

Cuestiones relacionadas