TED116: Vergleich von Dateinamen

Hallo,

ich möchte in einem Perl-Programm zwei Dateinamen (also z.B. test.zip) miteinandervergleichen, ob sie
identisch sind. Leider hat Perl scheinbar mit dem Punkt Probleme. Wenn ich die Forderung

if($file ne "index.txt")
  { ...}

ausführen lasse, führt er die Aktion aus,  obwohl $file auch eben mal "index.txt" ist. Eine Lösung wäre
natürlich die Extension abzuschneiden und nur den Namen zu vergleichen, aber das ist ja eigentlch nicht
Sinn der Sache.

Welche Lösung gibt es für dieses Problem? Weiß jemand Rat?
Oder hab ich irgendwo einen Denkfehler?

grüsse
TED116

  1. Moin,

    ausführen lasse, führt er die Aktion aus,  obwohl $file auch eben mal "index.txt" ist. Eine Lösung wäre
    natürlich die Extension abzuschneiden und nur den Namen zu vergleichen, aber das ist ja eigentlch nicht
    Sinn der Sache.

    Wenn Du nur die Namen vergl. willst schon!
    tipp: das Modul File::Basename benutzen (meth. "fileparse") und:
    Groß/Kleinschreibung beachten!

    Viele Grüße, Rolf

  2. 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