[perl] use mit variablen Namen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
blackm
Moderator und Co-Admin
Beiträge: 5921
Registriert: 02.06.2002 15:03:17
Lizenz eigener Beiträge: MIT Lizenz

[perl] use mit variablen Namen

Beitrag von blackm » 11.10.2003 16:06:07

Hi,

ich hab ein Verzeichnis in dem perl Module sind. Dazu hab ich noch eine Datenbank in der alle aktiven Module gelistet sind. ich moechte nun alle Module laden die in der Datenbank sind, aber irgendwie scheint usenicht mit variablen arbeiten zu koennen...

Code: Alles auswählen

use $modul_name
funktioniert nicht, da gibt es einen syntax error.

Jemand ne Idee wie ich das machen kann?

by, Martin
Schöne Grüße

Martin

Neu im Forum? --> https://wiki.debianforum.de/debianforum ... tensregeln
Log- und Konfigurationsdatein? --> pastebin.php
Forum unterstützen? --> https://wiki.debianforum.de/debianforum.de/Spenden

Olaf Dietsche
Beiträge: 520
Registriert: 12.06.2003 23:18:50
Wohnort: Siegburg

Beitrag von Olaf Dietsche » 11.10.2003 19:41:26

Du kannst das mit require und import simulieren. Schau mal in

Code: Alles auswählen

man perlfunc
...
       use Module VERSION LIST
       use Module VERSION
       use Module LIST
       use Module
       use VERSION
               Imports some semantics into the current package from the named module,
               generally by aliasing certain subroutine or variable names into your
               package.  It is exactly equivalent to

                   BEGIN { require Module; import Module LIST; }

               except that Module _must_ be a bareword.
...

Benutzeravatar
blackm
Moderator und Co-Admin
Beiträge: 5921
Registriert: 02.06.2002 15:03:17
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von blackm » 12.10.2003 00:30:28

Damit hatte ich es schonmal versucht...hatte damals aber nicht funktioniert weil ich es in den BEGIN { .... } Block geschrieben hatte. Da die Variablen da noch nicht gesetzt sind konnte er das require nicht richtig aufrufen.

Code: Alles auswählen

#! /usr/bin/perl -w

use strict;

my $m = 'diagnostics';

require "$m.pm";
funktioniert.

by, Martin
Schöne Grüße

Martin

Neu im Forum? --> https://wiki.debianforum.de/debianforum ... tensregeln
Log- und Konfigurationsdatein? --> pastebin.php
Forum unterstützen? --> https://wiki.debianforum.de/debianforum.de/Spenden

Antworten