A good rule of them i like to apply, is use "if (cond){ block }" only if block is more then one statement.
As for using "A or B" vs "B unless A" .. I like to make the "main" action be the first one, so that people skimming your code get an idea of what you are doing without reading hte whole line. But in the examples you provide, deciding what the "main" action is depends largely on your perception of the greater context...
- Are you primarily warning about bad input, and the size comparison is a condition of that warning?
- Are you primarily comparing the size, and the warning is potential result of the comparison?
Given such a short bit of code, it probably doesn't matter much. However, if you were doing a big chunk of input/data validation, with lots of different warnings in differnt cases, I'd use...
warn "blah blah" unless A;
warn "yak yak" unless B;
warn "bafkjlkajaksjdf;lkjas;kaj;aksdf;kjalkjas;dkf"
unless C;
warn "blblblblblbblblblblbl"
unless (D or E);
if you're doing a lot of processing, and the warning is just an afterthough in one section of hte processing, then i'd use or...
doSomething();
something->else();
third_thing()
or warn "something didn't work quite right";
still(processing);
|