Struppi: "use" dynamisch verwenden?

Beitrag lesen

Hallo und zunächst Danke...
Allerdings funktioniert das mir require nicht so ganz, wie ich mir das vorgestellt habe (vereinfachte Darstellung):

Dachte ich mir schon, das ist alles ein bisschen Tricky, die eval Lösung dürfte dir am besten gefallen.

Ich würd allerdings deinen Ansatz anders angehen.

Hauptdatei:

use strict;

use lib "/home/mydir/lib/";
use IP_tool;
use Convert;

$add_module="input.pm";
require $add_module;

$input=&read_input("foo","bar");

Wenn du die Funktion im Package läßt und nicht exportierst ginge das:

  
use strict;  
  
use lib "/home/mydir/lib/";  
use IP_tool;  
use Convert;  
  
$add_module="input.pm";  
require $add_module;  
  
$input = input::read("foo","bar");  
..  
  
input.pm:  
==========  
package input;  
  
sub read  
{  
...  
}  

Die & Zeichen sind hier überflüssig (sie haben unter bestimmten Bedingungen eine spezielle Funktion).

So musst du nicht den Namensraum "verschmutzen" und erkennst klar woher die Funktion kommt. Hat aber den Nachteil, dass Tippfehler im Funktionsnamen erst zur Laufzeit festgestellt werden.

Struppi.