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


in reply to Re^2: How to sovle this, if i use strict i'm getting error.
in thread How to sovle this, if i use strict i'm getting error.

They think it's a bad idea because 'use strict' complains ... but if you know that what you're trying to do is correct, you can shut off 'use strict' for the specific complaint that it has:

use strict; use warnings; for my $i ( 1 .. 2 ) { $a = 'test'.$i; no strict 'refs'; &$a; } sub test1 { print 'test1'; } sub test2 { print 'test2'; }

So where's the problem with that? None, really. I mean, it doesn't propogate, so you're still protected in the subroutine you're calling:

use strict; use warnings; for my $a qw( test1 test2 ) { no strict 'refs'; &$a; } sub test1 { print 'test1'; } sub test2 { my $x='test3'; &$x }

PS. For the original poster -- it's convention that you don't use $a and $b as variable names, unless you're dealing with sorting.

Replies are listed 'Best First'.
Re^4: How to sovle this, if i use strict i'm getting error.
by BUU (Prior) on Dec 06, 2005 at 09:32 UTC
    You don't actually need to change the current strictures:
    use strict; sub foo { print "Foo"; } sub bar { print "bar"; } main->can("foo")->();