Perlcritic считает, что хэши — это операторы, разделенные запятыми

Я получаю нарушение perlcritic, которое не имеет смысла для блоков кода, подобных следующему:

$object->insert(
    {   
        %defaults,
        name => 'TEST',
        line => 1,
        keywords => 'TEST OBJECT',
        %overrides
    }
);

Perlcritic 1.117 говорит: «Запятая используется для разделения операторов в строке 880, столбце 4. См. стр. 68,71 PBP».

Я могу только предположить, что perlcritic ошибочно идентифицирует эти хэши как блоки кода.

Я отключил его, вставив «## no критик (ProhibitCommaSeparatedStatements)» в верхней части каждого такого «блока», но есть ли лучший способ справиться с этим?


person Jacob Rose    schedule 30.04.2013    source источник


Ответы (1)


Я считаю, что проблема в том, что он путается с %defaults и %overrides. Бьюсь об заклад, если вы удалите их, он больше не будет жаловаться.

Я столкнулся с этим на днях и просто еще не выписал билет.

person Andy Lester    schedule 30.04.2013