Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]11935[/thread]

Pfad-Probleme mit require-Funktion

Leser: 1


<< |< 1 2 >| >> 11 Einträge, 2 Seiten
Gast Gast
 2008-05-29 15:03
#110447 #110447
Hallo,

ich benutze die require-Funktion und muss um ein pl.-Datei zu inkludieren den kompletten Pfad eingeben ( require "C:/Dokumente und Einstellungen/.../cgi-bin/function/sql.pl"; ).
Wenn ich den relativen Pfad eingebe ( require "function/sql.pl";) kommt eine Fehlermeldung: " Can't locate function/sql.pl in @INC (@INC contains: C:/Dokumente und Einstellungen/.../xampp/perl/site/lib/ "

Gibt es eine Möglichkeit nur den relativen Pfad einzugeben?

MfG
renee
 2008-05-29 15:07
#110448 #110448
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Wie rufst Du das Skript denn auf? Normalerweise kann man das genau so machen wie Du es versucht hast?
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-05-29 15:10
#110449 #110449
Hallo renee,

Ich habe das XAMPP-Paket installiert und die Skripte befinden sich im cgi-bin-Verzeichnis
renee
 2008-05-29 15:32
#110450 #110450
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Und *wie* rufst Du das Skript auf? Bist Du direkt in dem Verzeichnis (cgi-bin)?
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-05-30 10:05
#110474 #110474
Ich rufe das Skript über http://localhost/cgi-bin/require.pl auf.
Was mich auch noch wundert, beim ersten aufrufen des Skripts funktioniert der require-Befehl, wenn ich mit F5 die Seite neu lade verschwindet der eingefügte Text.

Hier ist mein Code vielleicht habe ich ja irgendwo einen Fehler

Datei 1:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
#!/usr/bin/perl -w

use strict;
use CGI::Carp qw(fatalsToBrowser);

print "Content-type: text/html\n\n";
print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">', "\n";
print "<html><head><title>Test</title></head><body>\n";

require "C:/Programme/xampp/cgi-bin/kundenvorgaben/require.pl";

print "</body></html>\n";


Datei 2:
Code: (dl )
1
2
print "abc";
1;
RalphFFM
 2008-05-30 13:53
#110479 #110479
User since
2006-11-16
258 Artikel
BenutzerIn
[Homepage] [default_avatar]
Schreibe doch mal statt dessen
require ..... or print "Da ist was schiefgelaufen: $!".
Gast Gast
 2008-05-30 15:07
#110485 #110485
Hallo RalphFFM,

hab dein Vorschlag mal ausprobiert hat aber nicht funktioniert

Aber jetzt habe ich eine andere Lösung gefunden, ich benutze statt require do

Code: (dl )
do"C:/Programme/xampp/cgi-bin/kundenvorgaben/require.pl";


,diesen Befehl habe ich auf der Seite http://perl-seiten.homepage.t-online.de/html/perl_perl.html gefunden.

Was mich aber noch wundert ist, dass bei der Verwendung von require beim ersten Aufruf der Text eingebunden wird und beim aktualisieren der Seite der Text wieder verschwindet.

Vielen Dank für eure Unterstützung
RalphFFM
 2008-05-30 16:04
#110487 #110487
User since
2006-11-16
258 Artikel
BenutzerIn
[Homepage] [default_avatar]
o Inwiefern unterscheidet sich jetzt das Fehlerbild mit do von demjenigen mit require? Wieso schreibst Du "Lösung" wenn es anscheinend noch ganz genauso aussieht wie vorher?

o Was meinst Du mit "hat aber nicht funktioniert" als Du das "or print .." an das require angehängt hast? Wie sah das Resultat denn genau aus?
Gast Gast
 2008-05-30 16:28
#110490 #110490
1. jetzt klappt es bei mir und ich bekomme die Datei inkludiert
eine Beschreibung der Unterschiede zwischen do und require sind auf der Website http://perl-seiten.homepage.t-online.de/html/perl_perl.html zu lesen

2. bei "or print .." wurde nichts angezeigt weil die Datei nicht mehr inkludiert wurde
habe es aber nochmal mit
Code: (dl )
do
probiert und den Zielpfad geändert
Wenn keine Datei gefunden wurde, hatte es die Fehlermeldung angezeigt
Struppi
 2008-05-30 20:14
#110491 #110491
User since
2006-02-17
628 Artikel
BenutzerIn
[Homepage]
user image
Gast+2008-05-30 14:28:22--
1. jetzt klappt es bei mir und ich bekomme die Datei inkludiert
eine Beschreibung der Unterschiede zwischen do und require sind auf der Website http://perl-seiten.homepage.t-online.de/html/perl_perl.html zu lesen
D.h. du willst die Datei mehrmals in deinem Skript einbinden? Das ist der einzige Unterschied hier zwischen do und require.

Deine Beobachtungen oben deuten auf mod_perl, das hast du bei den wenigsten Hostern zu verfügung.

Ob es sinnvoll ist eine Datei lediglich für eine Ausgabe einzubinden ist eine andere Frage, normalerweise bindest du Perl Code ein, den du dann vom Hauptprogramm aufrufst und dann ist require die bessere Wahl.
<< |< 1 2 >| >> 11 Einträge, 2 Seiten



View all threads created 2008-05-29 15:03.