Let's say I have a subroutine that looks something like:
sub dummy {
no strict;
no warnings;
${"$_[0]"} = $_[1];
}
Is that code buggy? Maybe ... maybe not. That code is unsafe, but unsafe is not necessary incorrect. You cannot evaluate a piece of code outside of its context.
Now, most of us are in the habit of evaluating a piece of code within a global context, because any piece of code may be used anywhere, but that's not always reasonable. The rules in my sig are ordered as they are for a reason. Good software follows rule #1. Great software needs rule #2, but the perfect is the enemy of the good.
My criteria for good software:
- Does it work?
- Can someone else come in, make a change, and be reasonably certain no bugs were introduced?