Schrift
[thread]479[/thread]

Perl Interpreter behauptet ich habe Syntaxfehler



<< |< 1 2 3 4 ... 6 >| >> 55 Einträge, 6 Seiten
Gast Gast
 2005-04-18 21:09
#4776 #4776
Hi!

Habe gerade in Perl ein CGI Skript geschrieben, dass eine Umfrage werden soll.
Der Perl Interpreter behauptet, dass Skript habe zu viele Fehler.

Habe %data, $thing deklariert und zwar so:

Code: (dl )
1
2
3
my %data = ();
my $thing = '';
my $val = 0;
renee
 2005-04-18 21:11
#4777 #4777
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Zeig doch mal das ganze Skript und die Fehlermeldung! Anhand dieser drei Zeilen lässt sich nix sagen!
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/
Patzor
 2005-04-18 21:14
#4778 #4778
User since
2005-04-18
11 Artikel
BenutzerIn
[default_avatar]
Fortsetzung.
Sorry.

Code: (dl )
$data('total')++;


Die Anführungszeichen habe ich schon entfernt, es liegt nicht an denen.

http://www.linkenheim-dettenheim.de/dos.jpg

Der Code:
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#!/C:/Perl/bin/perl.exe
#use strict;
use CGI qw(:standard);

my $results = 'umfrage_ergebnisse.txt';
my %data = ();
my $thing = '';
my $val = 0;

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

open(RESULTS, $results) or die "Ergebnisdatei konnte nicht ge&ouml;ffnet werden: $!";

while (<RESULTS>){
($thing, $val) = split(' ');
$data('$thing') = $val;
}

close(RESULTS);

#Gesamtsumme
$data('total')++;

#Alter
if (!param('age')){
$data('age_na')++
} else {
if (param('age') eq 'under18') {
$data('age_under18')++;
}
elsif (param('age') eq '18to34') {
$data('age_18to34')++;
}
elsif (param('age') eq '35to50') {
$data('age_35to50')++;
}
elsif (param('age') eq '50plus') {
$data('age_50plus')++;
}
}

#Geschlecht
if (!param('sex')) {
$data('sex_na')
} else {
if (param('sex') eq 'male') {
$data('sex_m')++;
}
elsif (param('sex') eq 'female') {
$data('sex_f')++;
}
}

#Perl
if (!param('perl')) {
$data('perl_na')++;
} else {
if (param('perl') eq 'yes') {
$data('perl_y')++;
}
elsif (param('perl') eq 'no') {
$data('perl_n')++;
}
}

open(RESULTS, ">$results") or die "In die Ergebnisdatei kann nicht geschrieben werden: $!";

foreach $thing (keys %data) {
print RESULTS "$thing $data{$thing}\n";
}

close(RESULTS);

print header;
print start_html('Danke');
print <<HTM;
<h1>Danke, dass Sie das Umfrageformular ausgef&uuml;llt haben!</h1>
<p>Die bisherigen Ergebnisse:</p>
<p>Geschlecht:</p>
<table border="0">
<tr>
<th>M&auml;nnlich</th>
<td>
HTM

print &prozent('sex_m'), "\n</td>\n</tr>\n";
print "<tr>\n<th>Weiblich</th>\n<td>\n";
print &prozent('sex_f'), "\n</td>\n</tr>\n";
print "<tr>\n<th>Keine Antwort</th>\n<td>\n";
print &prozent('sex_na'), "\n</td>\n</tr>\n";
print "</table>\n";

print "<p>Alter:</p>\n"

print '<table border="0">\n<tr>\n<th>Unter 18</th>\n<td>\n';
print &prozent('age_under18'), "\n</td>\n</tr>\n";
print '<tr>\n<th>18 bis 34</th>\n<td>\n';
print &prozent('age_18to34'), "\n</td>\n</tr>\n";
print '<tr>\n<th>35 bis 50</th>\n<td>\n';
print &prozent('age_35to50'), "\n</td>\n</tr>\n";
print '<tr>\n<th>&Uuml;ber 50</th>\n<td>\n';
print &prozent('age_50plus'), "\n</td>\n</tr>\n";
print '<tr>\n<th>Keine Antwort</th>\n<td>\n';
print &prozent('age_na'), "\n</td>\n</tr>\n";
print "</table>\n";

print "<p>Perl-Programmierer?\n</p>";

print '<table border="0">\n<tr>\n<th>Ja</th>\n<td>\n';
print &prozent('perl_y'), "\n</td>\n</tr>\n";
print '<tr>\n<th>Nein</th>\n<td>\n';
print &prozent('perl_n'), "\n</td>\n</tr>\n";
print '<tr>\n<th>Keine Antwort</th>\n<td>\n';
print &prozent('perl_na'), "\n</td>\n</tr>\n";
print "</table>\n";

print end_html;

sub prozent {
if (defined $data{$_[0]}) {
return sprintf("%.1f%%", $data{'_[0]} / $data{'total'} * 100);
} else {
return '0%';
}
}
\n\n

<!--EDIT|Patzor|1113844562-->
GwenDragon
 2005-04-18 21:18
#4779 #4779
User since
2005-01-17
14761 Artikel
Admin1
[Homepage]
user image
[quote=Patzor,18.04.2005, 19:14]
Code: (dl )
$data('total')++;
[/quote]
Tsts, es sollte schon
Code: (dl )
$data{'total'}++;
sein.
Patzor
 2005-04-18 21:22
#4780 #4780
User since
2005-04-18
11 Artikel
BenutzerIn
[default_avatar]
Danke.
Versuche es mit {}\n\n

<!--EDIT|Patzor|1113845003-->
renee
 2005-04-18 21:22
#4781 #4781
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Dieser Fehler taucht überall auf, wo Du versuchst auf ein Element des Hashs zuzugreifen... Ersetze dort die () durch {}
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/
pq
 2005-04-18 21:27
#4782 #4782
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
perldoc perlintro schon gelesen?
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
Patzor
 2005-04-18 21:33
#4783 #4783
User since
2005-04-18
11 Artikel
BenutzerIn
[default_avatar]
Was habe ich da falsch gemacht? Heute habe ich nur Probleme. :(
Code: (dl )
print "<table border='0'>\n<tr>\n<th>Unter 18</th>\n<td>\n";

Wieder Syntaxerror
Patzor
 2005-04-18 21:34
#4784 #4784
User since
2005-04-18
11 Artikel
BenutzerIn
[default_avatar]
[quote=pq,18.04.2005, 19:27]perldoc perlintro schon gelesen?[/quote]
Habe Perl schon gelernt. Aber bin noch am Testen.
Ich kann ja nicht alles auswendig wissen.
renee
 2005-04-18 21:41
#4785 #4785
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Du hast in der Zeile darüber das ; vergessen...
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/
<< |< 1 2 3 4 ... 6 >| >> 55 Einträge, 6 Seiten



View all threads created 2005-04-18 21:09.