Thread (xampp) Probleme mit do use require (11 answers)
Opened by Gast at 2007-03-23 22:01

Michaela
 2007-03-25 14:17
#9840 #9840
User since
2007-03-25
3 Artikel
BenutzerIn
[default_avatar]
Hallo und guten Morgen,
ich danke euch für eure tatkräftige Hilfe. Die Registrierung hat jetzt geklappt.

Hier mal meine 3 Scripte. Ein Testscript. Es wird eine Blätterfunktion per use do oder require eingebuden.

dateiA:
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!/usr/local/bin/perl -w
use strict;
use CGI::Carp qw(fatalsToBrowser);
print "Content-type: text/html\n\n";

#Includes
use lib ('C:/Programme/xampp/htdocs/ptest');
use func;

#GET HOLEN
#Die Seitenzahl wird übergeben
#Wenn vorhanden $seite=übergabe
#Sonst $seite = die übergebene Seitenzahl
my $daten = $ENV{'QUERY_STRING'};;
my @formulardaten = split(/=/, $daten);
my $seite ="";
if($formulardaten[0] eq "") {
my $seite=1;
}
else {
$seite = $formulardaten[1];
}


#Werte für Blätterfunktion ermitteln
#Start und Eintraege_pro_seite wird für das Limit bei der Sql abfrage benötigt
my $eintraege_pro_seite = 8;
my $start=$seite * $eintraege_pro_seite - $eintraege_pro_seite;


#Berechnung: Wieviele Seiten wird es geben
#Die Menge kommt aus der Datenbank
#Hier setzt ich die Menge mal auf 47
my $menge=47;
my $maxseite=$menge/$eintraege_pro_seite;

#Parameter 4:
#Dieser steht für die anzahl zwichen den Seitenzahlen, die bei einer großen Seitenmenge vorliegt.
#Sprich: 1 ... 5678 ... letzte
# :-) Nicht ändern, nachher findest du noch eine Bug, das wäre nciht schön!
my $x = blaettern("./dateiA.pl", "4", "$seite", "$maxseite");

print "<br /><br />";
print "<div align=\"right\"><b>Seite:</b> $x</div>";


dateiB:
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!/usr/local/bin/perl -w
use strict;
use CGI::Carp qw(fatalsToBrowser);
print "Content-type: text/html\n\n";

#Includes
use lib ('C:/Programme/xampp/htdocs/ptest');
use func;

#GET HOLEN
#Die Seitenzahl wird übergeben
#Wenn vorhanden $seite=übergabe
#Sonst $seite = die übergebene Seitenzahl
my $daten = $ENV{'QUERY_STRING'};;
my @formulardaten = split(/=/, $daten);
my $seite ="";
if($formulardaten[0] eq "") {
my $seite=1;
}
else {
$seite = $formulardaten[1];
}


#Werte für Blätterfunktion ermitteln
#Start und Eintraege_pro_seite wird für das Limit bei der Sql abfrage benötigt
my $eintraege_pro_seite = 8;
my $start=$seite * $eintraege_pro_seite - $eintraege_pro_seite;


#Berechnung: Wieviele Seiten wird es geben
#Die Menge kommt aus der Datenbank
#Hier setzt ich die Menge mal auf 47
my $menge=47;
my $maxseite=$menge/$eintraege_pro_seite;

#Parameter 4:
#Dieser steht für die anzahl zwichen den Seitenzahlen, die bei einer großen Seitenmenge vorliegt.
#Sprich: 1 ... 5678 ... letzte
# :-) Nicht ändern, nachher findest du noch eine Bug, das wäre nciht schön!
my $x = blaettern("./dateiB.pl", "4", "$seite", "$maxseite");

print "<br /><br />";
print "<div align=\"right\"><b>Seite:</b> $x</div>";


func.pm
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#Blätterfunktion
sub blaettern {
my $url=shift;
my $anhang="";
my $anzahl=shift;
my $seite=shift;
my $maxseite=shift;
my $get_name="seite";

$maxseite=int($maxseite+0.999);

if($url=~ /\?/ ) {
$anhang="&amp;";
}
else {
$anhang="?";
}

if($anzahl % 2 != 0) {
$anzahl++;
}

my $a = $seite-($anzahl/2);
my $b = 0;
my @blaetter;

while($b <= $anzahl) {
if($a > 0 && $a <= $maxseite)
{
push(@blaetter,$a);
$b++;
}
elsif($a > $maxseite && ($a-$anzahl-2)>=0)
{
splice(@blaetter);
$a -= ($anzahl+2);
$b = 0;
}
elsif($a > $maxseite && ($a-$anzahl-2)<0)
{
last;
}
$a++;
}

my $return = "";
my $count=@blaetter;

my $exists = grep /^1$/, @blaetter;
if($exists!=1 && $count > 1) {
my $exists = grep /^2$/, @blaetter;
if($exists != 2 && $anzahl ne $maxseite) {
$return .= "&nbsp;<a href=\"$url$anhang$get_name=1\">1</a>&nbsp;...";
}
else {
$return .= "&nbsp;<a href=\"$url$anhang$get_name=1\">1</a>&nbsp;";
}
}

foreach(@blaetter) {
if($_ == $seite) {
$return .= "&nbsp;<b>$_</b>&nbsp;";
}
else {
$return .= "&nbsp;<a href=\"$url$anhang$get_name=$_\">$_</a>&nbsp;";
}
}

$exists = grep /^$maxseite$/, @blaetter;
if($exists != 1 && $count > 1) {
my $max = $maxseite-1;
my $exists = grep /^$max$/, @blaetter;
if($max != 1) {
$return .= "...&nbsp;<a href=\"$url$anhang$get_name=$maxseite\">letzte</a>&nbsp;";
}
else {
$return .= "&nbsp;<a href=\"$url$anhang$get_name=$maxseite\">$maxseite</a>&nbsp;";
}
}


return ($return);

}


1;


Folgendes passiert mit use und require:
Aufruf von dateiA - OK
Aufruf von dateiB - Undefined subroutine

Neustart des Webservers:
Aufruf von dateiB - OK
Aufruf von DateiA - Undefined subroutine

Mache ich das ganze mit do,
Aufruf von dateiB - OK
Aufruf von dateiA - OK

Ich hoffe ihr könnt den Fehler finden,
Vielen Dank,
Michaela

View full thread (xampp) Probleme mit do use require