Re: pfad auslesen
am 08.05.2007 13:35:50 von Frank Seitz
Alexander Kainz wrote:
> ich suche nach einer möglichkeit bzw. den codes, wie ich
> einem perl-script seine umgebung vermitteln kann.
>
> was ich brauche: script-name, absoluter pfad
>
> wohlgemeerkt: das script wird von der shell ausgeführt und
> NICHT von einem web-client!
$ perldoc FindBin
Grüße
Frank
--
Dipl.-Inform. Frank Seitz; http://www.fseitz.de/
Anwendungen für Ihr Internet und Intranet
Tel: 04103/180301; Fax: -02; Industriestr. 31, 22880 Wedel
pfad auslesen
am 08.05.2007 13:36:34 von Patrick Bates
hallo leute!
ich suche nach einer möglichkeit bzw. den codes, wie ich
einem perl-script seine umgebung vermitteln kann.
was ich brauche: script-name, absoluter pfad
wohlgemeerkt: das script wird von der shell ausgeführt und
NICHT von einem web-client!
greets
-/--\-
alex
Re: pfad auslesen
am 09.05.2007 09:29:47 von Ferry Bolhar
Alexander Kainz:
> ich suche nach einer möglichkeit bzw. den codes, wie ich
> einem perl-script seine umgebung vermitteln kann.
>
> was ich brauche: script-name, absoluter pfad
Meinst du soetwas wie:
use Cwd;
$path = cwd . '/' . $0;
> wohlgemeerkt: das script wird von der shell ausgeführt und
> NICHT von einem web-client!
Ich wüßte auch nicht, wie ein Web-Client Perl-Skripts
ausführen kann. Zumindest nicht nach meiner Definition
von "Web-Client".
LG, Ferry
--
Ing Ferry Bolhar
Magistrat der Stadt Wien - MA 14
A-1010 Wien
E-Mail: bol@adv.magwien.gv.at
Re: pfad auslesen
am 09.05.2007 10:51:26 von Frank Seitz
Ferry Bolhar wrote:
> Alexander Kainz:
>>
>>ich suche nach einer möglichkeit bzw. den codes, wie ich
>>einem perl-script seine umgebung vermitteln kann.
>>
>>was ich brauche: script-name, absoluter pfad
>
> Meinst du soetwas wie:
>
> use Cwd;
> $path = cwd . '/' . $0;
Was soll das denn sein?
a) Das "Current Working Directory" ist üblicherweise von
dem Ort, an dem sich das Skript befindet, verschieden.
b) Unter Unix enthält $0 (meist) den gesamten Pfad.
Grüße
Frank
--
Dipl.-Inform. Frank Seitz; http://www.fseitz.de/
Anwendungen für Ihr Internet und Intranet
Tel: 04103/180301; Fax: -02; Industriestr. 31, 22880 Wedel
Re: pfad auslesen
am 09.05.2007 18:45:06 von Ferry Bolhar
Frank Seitz:
> > use Cwd;
> > $path = cwd . '/' . $0;
>
> Was soll das denn sein?
> a) Das "Current Working Directory" ist üblicherweise von
> dem Ort, an dem sich das Skript befindet, verschieden.
> b) Unter Unix enthält $0 (meist) den gesamten Pfad.
a) Kann, muss aber nicht so sein
b) Nein (zumindest bei mir - RH Linux mit Perl 5.8.6 - nicht).
$0 enthält das, womit man das Skript aufgerufen hat. Deswegen
funktioniert's auch:
Wenn ich ein Skript
/home/bol/test/test.pl
habe und
ein
cd /home/bol/test
perl test.pl
mache, bekomme ich genau den obigen Pfad heraus.
Mache ich ein
cd /home/bol
perl test/test.pl
ebenso. cwd() und $0 ergänzen sich jeweils, man
muss nur noch ein '/' dazwischensetzen.
Ich gebe allerdings gerne zu, dass
o) der Ansatz mit Links Probleme hat
o) auf Filesystemen bzw. unter Betriebsystemen, deren
Dateinnamen anders zusammengesetzt sind (z.B. VMS)
nicht funktionieren wird. Aber dafür gibt es ja auch schon
genügend andere Module.
Es ging mir nur um eine einfache Lösung, der OP hat ja
nicht weiter ausgeführt, was er genau wollte.
LG, Ferry
--
Ing Ferry Bolhar
Magistrat der Stadt Wien - MA 14
A-1010 Wien
E-Mail: bol@adv.magwien.gv.at
Re: pfad auslesen
am 09.05.2007 21:16:22 von Frank Seitz
Ferry Bolhar wrote:
>>>use Cwd;
>>>$path = cwd . '/' . $0;
[...]
> Wenn ich ein Skript
>
> /home/bol/test/test.pl
>
> habe und
>
> ein
>
> cd /home/bol/test
> perl test.pl
>
> mache, bekomme ich genau den obigen Pfad heraus.
>
> Mache ich ein
>
> cd /home/bol
> perl test/test.pl
>
> ebenso. cwd() und $0 ergänzen sich jeweils, man
> muss nur noch ein '/' dazwischensetzen.
Es funktioniert aber nicht, wenn das Skript
o mit absolutem Pfad gerufen oder
o über PATH gefunden
wird.
(Du hast recht, wenn das Skript mit einem relativen
Pfad gerufen wird, steht auch nur dieser auf $0)
Grüße
Frank
--
Dipl.-Inform. Frank Seitz; http://www.fseitz.de/
Anwendungen für Ihr Internet und Intranet
Tel: 04103/180301; Fax: -02; Industriestr. 31, 22880 Wedel
Re: pfad auslesen
am 09.05.2007 21:23:20 von Slaven Rezic
"Ferry Bolhar" writes:
> Frank Seitz:
>
> > > use Cwd;
> > > $path = cwd . '/' . $0;
> >
> > Was soll das denn sein?
> > a) Das "Current Working Directory" ist üblicherweise von
> > dem Ort, an dem sich das Skript befindet, verschieden.
> > b) Unter Unix enthält $0 (meist) den gesamten Pfad.
>
> a) Kann, muss aber nicht so sein
>
> b) Nein (zumindest bei mir - RH Linux mit Perl 5.8.6 - nicht).
> $0 enthält das, womit man das Skript aufgerufen hat. Deswegen
> funktioniert's auch:
>
> Wenn ich ein Skript
>
> /home/bol/test/test.pl
>
> habe und
>
> ein
>
> cd /home/bol/test
> perl test.pl
>
> mache, bekomme ich genau den obigen Pfad heraus.
>
> Mache ich ein
>
> cd /home/bol
> perl test/test.pl
>
> ebenso. cwd() und $0 ergänzen sich jeweils, man
> muss nur noch ein '/' dazwischensetzen.
>
Dann versuch mal:
dein Skript in /tmp/bla.pl
env PATH=/tmp bla.pl
Das ergibt bei mir, wenn ich mich in $HOME befinde:
/home/e/eserte//tmp/bla.pl
Die richtige Lösung lautet übrigens "use FindBin".
Gruß,
Slaven
--
Slaven Rezic - slaven rezic de
need xpm or ppm output from GD?
http://search.cpan.org/search?mode=module&query=GD::Convert