mittels Linux shell das perl lib Verzeichnis finden
roger
- programmiertechnik
Hallo,
ich sichere auf meinem Server mittels "tar" in einem shellscript wichtige Daten.
Dazu lese ich mit dem Parameter "-T" ein Textfile ein, in dem die zu sichernden Pfade bzw. Dateinamen stehen. Dieses Shell Script möchte ich auf anderen Servern auch benutzen, dazu muss ich das Textfile immer wieder ändern. (manuell)
Wie kann ich das perl Verzeichnis automatisch suchen/ermitteln, unabhängig von der Perlversion.
z.B. /usr/lib/perl5/5.14.2/
d.h. die Versionsnummer ändert sich je nach Perl-Version.
Diesen Pfad müsste ich dann dynamisch in das Textfile schreiben, alles im backup shell script
Gruß
roger
Wie kann ich das perl Verzeichnis automatisch suchen/ermitteln, unabhängig von der Perlversion.
z.B. /usr/lib/perl5/5.14.2/
Perl selbst kennt den Array @INC. Der hält einiges bereit. Der Array wird unter anderem mit einem perl -V (großes V!) ausgegeben.
perl -V:config_args gibt die zum Kompilieren gesetzte Konfiguration aus.
Die kannst Du nach '-Darchlib=' durchuchen, danach folgt (bei mir) etwas wie /usr/lib/perl/5.14 . Also ein Regex könnte helfen.
Einfacher ist jedoch mal in http://perldoc.perl.org/perlvar.html nachzusehen, was dort unter @inc hilfreiches zu finden ist :-)
Noch einfacher könnt es sein, echo 'print "$]\n"' | perl in der Shell auszuführen oder, wenn Du den Wert in einer Variablen brauchst: var=echo 'print "$]' | perl
Dann musst Du "nur beachten, dass die nach dem Punkt folgenden 6 Ziffern je 3 für die Version und die Subversion sind.
perl 5, version 14, subversion 2 (v5.14.2) meldet sich dann also mit 5.014002.