Erstes Modul:Bestimmung relativer Pfad in Perl-Modul
package Compute;
our $sort_script= "/app/scripts/python_script.py";
zweite Modul:
package ProcessRestart;
use Compute;
# This perl module is also in /app/scripts/
# host1.com is an argument or script parameter
$returnMsg= `$Compute::sort_script host1.com`;
Oben ist ein Beispiel für ein Perl-Modul habe ich geschrieben. Es ruft das Python-Skript von anderen Modulen auf und übergibt es in den notwendigen Argumenten/Parametern.
Ich habe versucht, den tatsächlichen Pfad des Skripts zu entfernen und es durch "./python_script.py" zu ersetzen, aber es scheint nicht zu funktionieren.
Ich habe versucht, das Verzeichnis beim Ausführen des Skripts mit Cwd zu drucken, es zeigt auf mein Home-Verzeichnis.
Welche anderen Möglichkeiten kann ich versuchen, einen relativen Pfad zum Skript zu haben?
Related: https://metacpan.org/pod/Dir::Self – melpomene
Sorry, ich bin neu in Perl. Zur Verwendung Path :: Class qw (Datei); Muss ich "Datei" durch den Dateinamen ersetzen? –
Nein, es ist der Name einer Funktion, die ein Path :: Class :: File-Objekt erstellt. Jeder Snippet, den ich gepostet habe, kann so verwendet werden, wie er ist, um einen verwendbaren Pfad in '$ qfn' zu erzeugen (was einem" qualifizierten Dateinamen "entspricht, was einen absoluten oder relativen Pfad zu einer Datei bedeutet). Wie ich unten erklärt habe, wird '__FILE__' automatisch durch den Pfad zu der Datei ersetzt, in der sich das Snippet befindet. – ikegami