http://www.perlmonks.org?node_id=778216


in reply to Pragma inside grep block

Good question.

5.10.0 has the same problem:

$ perl -e'use strict; use warnings; grep { no strict "refs"; }qw(x); ' "no" not allowed in expression at -e line 2, at end of line BEGIN not safe after errors--compilation aborted at -e line 2. $ perl -e'use strict; use warnings; grep { 0; no strict "refs"; }qw(x); ' $
Of course,
{ no strict "refs"; grep {0;} qw(x); }
would work fine, so at least there's a workaround...

Mike

Replies are listed 'Best First'.
Re^2: Pragma inside grep block
by Anonymous Monk on Jul 08, 2009 at 12:16 UTC
    Workaround is to add ;
    grep { ;no strict 'refs'; } qw(x);
    but that confuse Deparse :D
    perl -MO=Deparse use strict; use warnings; grep { ;no strict 'refs'; } qw(x); ^D use warnings; use strict 'refs'; grep {();} 'x'; - syntax OK
    Also works
    grep { do{ no strict 'refs'; } } qw(x)