Schrift
[thread]12036[/thread]

Fehler beim Einbinden eines Moduls

Leser: 2


<< |< 1 2 >| >> 11 Einträge, 2 Seiten
Gast Gast
 2008-06-18 13:26
#111173 #111173
Hallo,

kann mir jemand sagen was ich falsch mache wenn diese Fehlermeldung kommt:

Code (perl): (dl )
Bareword "ftest" not allowed while "strict subs" in use at



Ich habe ein eigenes Modul geschrieben was die funktion "ftest" enthält und beim Aufrufend der Funktion kommt immer die Fehlermeldung

Dank
renee
 2008-06-18 13:33
#111176 #111176
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Exportierst Du diese Funktion? Wie sieht der Code aus? Wie sieht das Modul aus?
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/
Struppi
 2008-06-18 13:42
#111182 #111182
User since
2006-02-17
628 Artikel
BenutzerIn
[Homepage]
user image
Um eine Funktion aufzurufen brauchst du normalerweise auch Klammern: ftest()
Es sei denn du benutzt Prototypen oder die Funktionsdeklaration ist im Quelltext vor dem Aufruf.
Gast Gast
 2008-06-18 16:13
#111198 #111198
Ich habe jetzt eine andere Möglichkeit ausprobiert.

Ich versuche mit require eine datei einzubinden

Code (perl): (dl )
 require "startseite.pl"; 


Code startseit.pl:
Code (perl): (dl )
1
2
3
print "Test";

1;



Das hat auch funktioniert aber auch nur einmal.
Die Datei wird nur eingebunden wenn ich meinen Server neustarte. Wenn ich den Browser wieder aktualisiere verschwindet der eingebundene Text.
Das gleiche Verhalten ist auch bei
Code: (dl )
do
zu finden
renee
 2008-06-18 16:16
#111202 #111202
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
mod_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/
Gast Gast
 2008-06-18 16:39
#111211 #111211
Gibt es noch andere Möglichkeiten Perl-Code in eine Datei einzubinden?
Ich möchte aber den Code im laufenden Server-Betrieb ändern und nicht immer den Server neustarten.
Wie es z. B. mit PHP-Befehl "require" funktioniert.
Außerdem habe ich bei perldoc gelesen das Perl-Code der mit requiere eingebunden wird nur einmal eingebunden wird.
pq
 2008-06-18 16:50
#111213 #111213
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
require lädt das modul nur einmal, ja, und das ist ein *feature*.
dass du im laufenden betrieb ein modul neuladen willst, ist keine funktion, die
man jeden tag braucht. wenn es ums entwickeln geht, dann gibt es da
für apache z.b. Apache::Reload.

also, sag am besten immer auch, wofür du etwas brauchst.
wenn du es wirklich von hand machen willst, dann musst du erst das
modul aus dem hash %INC löschen und danach ein require aufrufen, denn require
guckt vorher in dem hash nach, ob das modul schon geladen wurde.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
renee
 2008-06-18 17:03
#111214 #111214
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Pack die Funktionalität des eingebundenen Skripts doch einfach in eine Subroutine und rufe diese Subroutine auf...
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/
Gast Gast
 2008-06-18 18:24
#111233 #111233
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$navigation = $cgi->url_param('navigation');
$modul = $navigation.".pl";

if ($navigation ne "" and (-e "C:/xampp/htdocs/module/$modul")) {
        
        require $modul;
        content();

}else{
        
        #einbinden des Templates index.html
        $template = HTML::Template->new(filename => "C:/xampp/htdocs//templates/index.html");
        print $template->output();
}


Ich versuche mit der GET-Methode verschieden Dateien in die Index.pl einzufügen.
Aber das funktioniert nicht.
Wie schaffe ich es, wenn der Bowser aktualisiert wird, dass der require Befehl neu ausgeführt
pq
 2008-06-18 19:12
#111240 #111240
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
Gast+2008-06-18 16:24:10--
Wie schaffe ich es, wenn der Bowser aktualisiert wird, dass der require Befehl neu ausgeführt

sagte ich doch oben. wenn du daran etwas nicht verstanden hast, dann frag doch nach.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
<< |< 1 2 >| >> 11 Einträge, 2 Seiten



View all threads created 2008-06-18 13:26.