Sorry to bump an old thread but ...
I don't agree with you on using multiple 'if' statements instead of stringing them together.
The original code ...
Code:
if($text=~/accessories/i && $class == 'ranger') {
.. do something ..
}
The only semi-clean way to duplicate that statement is by nesting the 'ifs' ...
Code:
if($text=~/accessories/i) {
if($class == 'ranger') {
.. do something ..
}
}
The problem is, if you want to add an 'else', or change the logic to 'or' (||)instead of 'and' (&&) ... it would be really ugly to code when the 'ifs' are nested. Granted, if you have to perform 50 operations, it would be ugly to have them all in one statement, but for small ones, I believe they should be strung together, it promotes good coding practice.
I do agree on the use of proper operators though. In this case, it works because the '==' (numerical equality operator) simply converts the text to it's ascii value and compares the two values. Since any text with the same ascii values will be the same text, the operation works. However, you should get in the practice of using operaters that match the variable type.