Filenamen zu Filehandle ermitteln

Filenamen zu Filehandle ermitteln

am 28.11.2006 09:59:50 von KWittrock

Hallo,

ich habe eine Subroutine, die einen Filenamen ermittelt und die Datei
öffnet. Wenn ich später Probleme mit den Daten habe, möchte ich in der
Fehlermeldung den Filenamen mit ausgeben. Da ich globale Variable möglichst
vermeide, könnte ich einen Getter schreiben, der mir den Filenamen liefert.
Aber vielleicht gibt es in Perl auch eine generelle Möglichkeit, den zu
einem Filehandle gehörigen Filenamen zu bekommen (falls die Datei einen
Namen hat).
Weiß jemand etwas darüber?

Gruß

Klaus

Re: Filenamen zu Filehandle ermitteln

am 28.11.2006 11:01:00 von Frank Wiegand

K. Wittrock schrieb:

> Filenamen liefert. Aber vielleicht gibt es in Perl auch eine generelle
> Möglichkeit, den zu einem Filehandle gehörigen Filenamen zu bekommen
> (falls die Datei einen Namen hat).
> Weiß jemand etwas darüber?

Idee: Benötigt Linux.

print readlink "/proc/$$/fd/" . fileno($fh);


Frank

Re: Filenamen zu Filehandle ermitteln

am 28.11.2006 11:17:38 von Daniel Fischer

Frank Wiegand!

> Idee: Benötigt Linux.

Also, wenn wir hier schon mit schmutzigen Tricks anfangen...

open $FH, "<", $fn and bless $FH, $fn or die;
...
# mach kram hier
...
print STDERR "Fehler in " . (ref $FH) . "!\n";


Gruß
Daniel

Re: Filenamen zu Filehandle ermitteln

am 28.11.2006 12:14:50 von KWittrock

"Daniel Fischer" schrieb im Newsbeitrag
news:pan.2006.11.28.10.17.38.359574@df.erinye.com...
> Frank Wiegand!
>
>> Idee: Benötigt Linux.

Schade, habe WinXP.

>
> Also, wenn wir hier schon mit schmutzigen Tricks anfangen...
>
> open $FH, "<", $fn and bless $FH, $fn or die;
> ...
> # mach kram hier
> ...
> print STDERR "Fehler in " . (ref $FH) . "!\n";
>

Prima, probiere ich gleich mal aus.

Klaus