Okay, so this: 100 < -s $filepath <= 1e6
really means this: 100 < -s $filepath && -s $filepath <= 1e6 which means that this: $a == $b != NaN really means this: $a == $b && $b != NaN But "$a == $b != NaN" is supposed to "[solve] the problem of numerical comparisons between non-numeric strings." Well, what if: $a = 'hello'; $b = 0; Doesn't that mean: "hello" == 0 && 0 != NaN will evaluate to true? Is that expected behavior for comparing "hello" and 0 with the EQ operator? Or am I not getting the purpose of the "$a == $b != NaN" idiom? -John