нет. нужно мне было вот это:
if($cat_id and ($cat_id <10 and $cat_id!=4) ) { ...
конечно, лучший вариант, чем куча or, но хуже, чем if($cat_id and ($cat_id=~m/1|2|3|5|6|7|8|9/)) { ...
и все равно. А если бы было не 18 цифр, а 18 слов, тогда как проверять - писать ту вот кучу or?