PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Perl] Skriptname herausfinden



ThorstenHirsch
28-06-2005, 16:06
Servus!

Ich muss in verschiedenen Subfunktionen auf den Namen meines Perl-Skripts zurückgreifen. Leider steht in $0 dann nur noch "noname" und nicht mehr der wirkliche Name. Weiß jemand warum sich das ändert? ...und wie ich narrensicher den Skriptname heraufsfinden kann?

Gruß
Thorsten

michael.sprick
28-06-2005, 17:15
Das sich der Inhalt von $0 ändert ist mir noch nie passiert, aber versuch mal ob


print __FILE__ ;


ebenfalls "noname" ausgibt.
Ansonsten wäre das Skript mal sehr interessant um herauszufinden, ab wann sich der Skriptname ändert...

ThorstenHirsch
28-06-2005, 23:40
Danke, probier ich morgen gleich mal aus.

ThorstenHirsch
29-06-2005, 15:45
Arrrgh, aua!

Also: ich hatte mir dummerweise nicht $0 direkt anzeigen lassen, sondern mit ner tollen RegEx den Inhalt von $0 von führenden '/' befreit um wirklich nur den Skriptname zu erhalten.
Das hat so gut geklappt, dass ich ganz vergessen hatte, dass wenn er aus $0 mit dieser RegEx nicht den Name herausfiltern kann, er ein "noname" zurückliefert. Naja und dann bin ich mit meinen Skripten auf einen Win-Rechner gekommen, wo nicht '/' rausgefiltert werden müssen sondern '\' und da hat diese RegEx versagt weshalb ich "noname" bekam.

Ein typischer Fall von PEBKAC also.
Sorry.

Thorsten

michael.sprick
29-06-2005, 16:24
:D
Kann passieren. Ansonsten habe ich rausgefunden, dass Childprozesse evtl. nicht den korrekten Namen in $0 haben. Das hängt angeblich von der Implentierung von 'ps' ab - reproduzieren konnte ich es allerdings nicht.

ThorstenHirsch
29-06-2005, 19:16
Vielen Dank für die Müh', die ich gemacht hab'.