Ich habe ein Hauptprogramm mytool.pl von der Kommandozeile ausgeführt werden. Es gibt mehrere Hilfsscripte special1.pl, special2.pl usw., die jeweils ein paar Subroutinen und einen Hash enthalten, die in allen Skripten identisch benannt sind. Nehmen wir an, diese heißen MySpecialFunction(), AnotherSpecialFunction() und% SpecialData.Mit einem Perl-Skript verwenden Sie eines unter mehreren sekundären Skripts
Ich möchte, dass mytool den Inhalt einer der speziellen * .pl-Dateien enthält/verwendet/importiert, nur einen gemäß einer Befehlszeilenoption. Zum Beispiel wird der Benutzer tun:
bash> perl mytool.pl --specialcase=5
und MyTools wird MySpecialFunction() von special5.pl verwenden, und ignorieren alle anderen Sonder * .pl-Dateien.
Ist das möglich und wie geht das?
Es ist wichtig zu beachten, dass die Auswahl der zu verwendenden speziellen Datei zur Laufzeit erfolgt. Daher ist das Hinzufügen einer "Verwendung" am oberen Rand von mytool.pl wahrscheinlich nicht das Richtige.
Hinweis Ich bin ein langjähriger C-Programmierer, kein Perl-Experte; Ich frage vielleicht etwas Offensichtliches. Dies ist für ein einmaliges Projekt, das in nur einem Monat zu Staub werden wird. Weder mytool.pl noch special? .pl (noch perl selbst) werden über das Ende dieses kurzen Projekts hinaus interessant sein. Daher interessieren uns keine Lösungen, die aufwändig sind oder eine tiefe Magie erlernen müssen. Schnell und schmutzig bevorzugt. Ich vermute, dass Perls Modul-Mechanismus dafür übertrieben ist, aber keine Ahnung, was die Alternativen sind.
Die Schlüsselidee besteht darin, das Schlüsselwort 'require' zu verwenden. Ich habe einen Cheatsheet zu 'Verwendung' 'require' 'do' und 'import' gefunden (drei davon sind neu für mich) unter http://www.snowfrog.net/2009/05/09/perl-use-require-import -und-ich/was beantwortet mehrere unscharfe Fragen, die ich in meinem Kopf hatte. – DarenW
@DarenW Sehen Sie sich die Perl-Dokumentation an, die in Perl integriert ist. Sie verwenden das 'perldoc'-Programm, um die Dokumentation zu lesen. Es ist alles auf dem [Web] (http://perldoc.perl.org) auch. Sehen Sie sich den Tutorial-Abschnitt an. –