Thread Dynamische Includes in perl (11 answers)
Opened by Gast at 2006-02-23 16:14

renee
 2006-02-25 02:06
#7019 #7019
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Ich habe jetzt mal was schnell geschrieben. Das auslesen der Dateinamen der Module solltest Du aber mit CPAN:File::Find machen.

So ungefaehr sollte es gehen:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/usr/bin/perl

use strict;
use warnings;
use lib qw(.);
use CGI::Carp qw(fatalsToBrowser);

print "Content-type: text/html\n\n";

opendir(DIR,"./Perl") or die $!;
my @pm_files = grep{/\.pm$/}map{"./Perl/".$_}readdir(DIR);
closedir DIR;

for my $module(@pm_files){
require $module;
}

my $module_i_want_to_use = "Perl::Test";

my $subroutine = $module_i_want_to_use."::get_name";

{
no strict 'refs';
&{$subroutine}();
}


und das Modul:
Code: (dl )
1
2
3
4
5
6
7
package Perl::Test;

sub get_name{
print "Hallo";
}

1;


Das $module_i_want_to_use musst Du natuerlich nicht vorbelegen, sondern kannst das auch dynamisch machen.

Ich habe hier das Content-type drin, weil ich den Code auf einem Webserver getestet habe (sitze hier an ner Gurke ohne Perl)...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/

View full thread Dynamische Includes in perl