David: open OUTFILE

Hallo zusammen

Der Befehl open(OUTFILE, "<$file") kann ja nicht mit Sonderzeichen. Ich habe bei uns intern eine Verzeichnis mit Dateien bei welchem gewisse Dateinamen "+" im Dateinamen haben. Ich müsste diese Daten auch ausgeben können, jedoch meckert mich Perl natürlich an, es können die Datei nicht öffnen.

Das einfachste wäre natürlich die Dateien umzubenennen, jedoch darf dies gemäss CTO nicht gemacht werden, da diese Daten noch anderweitig verknüpft sind. hat da jemand eine Idee wie man das lösen könnte?

Gruss David

  1. Bounjoun David,

    Der Befehl open(OUTFILE, "<$file") kann ja nicht mit Sonderzeichen.

    open() ist eine perleigene Funktion. Ob man Funktionen als Befehle bezeichnen darf, steht auf ein Blatt, das wenig relevant ist, aber, wie kommst Du dazu, dass open() Probleme mit Sonderzeichen hat?

    OUTFILE ist ein selbstvergebener file handle. Kannste auch HUSSELDIGUGGEL oder KEINPROBLEMMITSONDERZEICHEN nennen.

    Wie hast Du $file definiert?

    Adiou.

    --
    Ich bin eigentlich ganz anders, aber ich komme so selten dazu. - Ödön von Horwáth
    Ist Rudi Carrell Gott? Oder George Harrison Ford?
    Ich bin faul und das ist gut so.
    1. Re,

      Testen ist immer besser als Labern:

      use strict;
      my $file = 'dateimitpluszeichen+[]{}.txt';
      open FILE, "<", $file or die $^E;
      while (<FILE>) { print; }
      close FILE;

      Ausgabe ist der Inhalt der Datei.

      P.S.: Ich komme Struppi vor und sage: "Dann machst Du etwas falsch" ;)

      Adiou.

      --
      Ich bin eigentlich ganz anders, aber ich komme so selten dazu. - Ödön von Horwáth
      Ist Rudi Carrell Gott? Oder George Harrison Ford?
      Ich bin faul und das ist gut so.
      1. Lexikalische Handles wurden 2000 eingeführt. Du solltest Neulingen nicht mehr die herkömmliche Weise beibringen.

  2. Der Befehl open(OUTFILE, "<$file") kann ...

    ist besser in dieser Form zu verwenden

    open( my $fh, "<", $file ) or die ...

    mfg Beat

    --
    ><o(((°>           ><o(((°>
       <°)))o><                     ><o(((°>o
    Der Valigator leibt diese Fische
  3. Hi,

    Der Befehl open(OUTFILE, "<$file") kann ja nicht mit Sonderzeichen. Ich habe bei uns intern eine Verzeichnis mit Dateien bei welchem gewisse Dateinamen "+" im Dateinamen haben. Ich müsste diese Daten auch ausgeben können, jedoch meckert mich Perl natürlich an, es können die Datei nicht öffnen.

    Mal abgesehen davon, daß *ich* von vornherein vermeiden würde, derartige Dateinamen zu verwenden:

    Perl hat damit kein Problem.
    Ich vermute, daß der User, unter dem Dein Perl-Script läuft, keine Zugriffsrechte auf die Dateien hat.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.