Hi,
if($file ne "index.txt")
ausführen lasse, führt er die Aktion aus, obwohl $file auch eben mal "index.txt" ist.
bist Du sicher, daß $file "index.txt" ist, und nicht etwa "/pfad/zur/index.txt" oder auch "index.txt\n"? In beiden Fällen ist die Gleichheitsprüfung nämlich (zu Recht) negativ.
Eine Lösung wäre natürlich die Extension abzuschneiden [...]
Oder einfach mit Regular Expressions zu arbeiten. Siehe
perldoc perlre
Cheatah