Это работает точно так, как вы думали.Тем не менее, у вас есть Thinko в вашем состоянии.Каждое значение - это не одно значение или , а не другое значение.
Я полагаю, что вы, возможно, хотели
if ($ARRAY[2] ne 'three' && $ARRAY[2] ne 'THREE') { ...
или
if ($ARRAY[2] eq 'three' || $ARRAY[2] eq 'THREE') { ...
Выможет также потребоваться не зависящий от регистра способ сравнения, такой как
if (lc $ARRAY[2] ne 'three') { ...
или, возможно, не зависящее от регистра совпадение с регулярным выражением.