"no strict 'refs'" is not necessarily a bad idea, as long as you know what you're doing, and confine it to some lexical blocks. Its practically required when you dynamically create subroutines with AUTOLOAD, (where you also use goto which is usually bad too, but standard AUTOLOAD practice). Its just that even 'no strict' won't help you in the example above :-(