Schrift
[thread]479[/thread]

Perl Interpreter behauptet ich habe Syntaxfehler (Seite 3)



<< |< 1 2 3 4 5 6 >| >> 55 Einträge, 6 Seiten
Strat
 2005-04-19 17:37
#4796 #4796
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=Taulmarill,19.04.2005, 13:27][quote=Strat,19.04.2005, 13:10]3. $data('total') war schon... $data{'total}[/quote]
ich glaub da fehlt ein semikolon, soll wohl $data{'total'} sein.[/quote]
ups, stimmt...

nebenbei: semikolon ist aber der strichpunkt... ;
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Taulmarill
 2005-04-19 18:32
#4797 #4797
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
arg, verdamt. semikolons werden so oft vergessen, dass ich das schon irgendwie drin hab.
ist das ' jetzt eigendlich ein einfaches anführungszeichen, oder ein hochkomma?
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
Crian
 2005-04-19 18:43
#4798 #4798
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
ja
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Patzor
 2005-04-19 18:53
#4799 #4799
User since
2005-04-18
11 Artikel
BenutzerIn
[default_avatar]
[quote=Strat,19.04.2005, 13:10]1. die verwendung von use strict und use warnings wuerde dir schon einen grossteil der fehler zeigen
2.
Code: (dl )
($thing, $val) = split(' '); 

besser:
Code: (dl )
my ($thing, $val) = split(/\s+/, $_, 2);

3. $data('total') war schon... $data{'total}

4. $data{'_[0]} soll wohl $data{$_[0]} sein

5. es kann passieren, dass die die's vor dem content-type ausgegeben werden (weil STDERR ungebuffert ausgegeben wird, waehrend STDOUT gebuffert ist); vielleicht ist es zum entwickeln besser, auf die die's zu verzichten und da eine fehlermeldung via print auszugeben.

6. Interessant zum entwickeln ist auch
use CGI::Carp qw(fatalsToBrowser warningsToBrowser);
das gibt dir mehr feedback

7. die syntax eines scriptes kannst du testen, indem du es folgendermaszen ausfuehrst:
perl -c script.pl

dabei wird es (bis auf BEGIN- und aehnliche bloecke) nicht ausgefuehrt, sondern nur die syntax gecheckt. solange das noch fehler zurueckliefert, brauchst du igar nicht versuchen, es auf dem webserver zum laufen zu bringen...[/quote]
Habe die Sachen rausgeworfen, da ich Windows habe und das bringt mir dann nichts.
Kenne aber my und local für Perl Versionen unter 5.

use CGI::Carp qw(fatalsToBrowser warningsToBrowser);

hatte ich auch im Skript stehen, aber wie gesagt mache das nicht rein, weil es nichts bringt unter Windows.

perl -c
Habe ich vergessen auszuprobieren.

perl -w
use stricts;
use CGI::Carp qw(fatalsToBrowser warningsToBrowser);

sollte man oben im Skript haben.
Das weiß ich
Patzor
 2005-04-19 18:58
#4800 #4800
User since
2005-04-18
11 Artikel
BenutzerIn
[default_avatar]
Quote
Patzor: nur mal so aus interesse, welche dokus hast du schon gelesen? ich frage nur, weil nicht alles was durchs internet läuft und behauptet eine doku/tutorial/etc zu sein auch gut ist.


Perl in 21 tagen
Knowware
CGI & Perl für Einsteiger

dann noch ein paar andere Seiten.
Fande aber Perl in 21 Tagen super.
So stell&´ ich mir ein Totourial vor.
In Knowware wird leider nur die Oberfläche gestriefen.\n\n

<!--EDIT|Patzor|1113922751-->
Taulmarill
 2005-04-19 18:59
#4801 #4801
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
besser als #!perl -w ist use warnings, da die #! zeile nur von unixartigen betriebssystemen ausgewertet wird und auch nur, wenn man das script direkt aufruft.
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
ptk
 2005-04-19 19:04
#4802 #4802
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
[quote=Taulmarill,19.04.2005, 16:59]besser als #!perl -w ist use warnings, da die #! zeile nur von unixartigen betriebssystemen ausgewertet wird und auch nur, wenn man das script direkt aufruft.[/quote]
Ich bin mir ziemlich sicher, dass perl selbst in die Shebang-Zeile guckt und diese auswertet, auch wenn es ein Nicht-Unix ist.
Strat
 2005-04-19 19:10
#4803 #4803
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=Patzor,19.04.2005, 16:53]Kenne aber my und local für Perl Versionen unter 5.
[/quote]
Warum my? (eigentlich: warum lokale variablen?)
dann braucht man sich nicht mehr darum kuemmern, was ausserhalb des codeblocks (subroutine, schleife, ...) mit variablen desselben namens passiert, und das programm wird einfacher handhabbar, weil es aus vielen kleinen bloecken besteht, die voneinander soweit wie moeglich unabhaengig sind. Um sich da bei problemen helfen zu lassen (z.B. was ist der unterschied zwischen $var0hneNamen und $varOhneNamen?=, empfiehlt sich use strict;, was auch unter windows hervorragend funktioniert.

wenn du my und local kennst, dann hilft dir vielleicht die regel:
verwende bei lokalen variablen immer my, ausser wenn's nicht geht (z.B. bei perl-internen variablen wie $/, da muss local verwendet werden)

und use warnings; weist waehrend der entwicklung auf viele moegliche probleme hin. und auch das funktioniert unter windows hervorragend.

[quote=Patzor,19.04.2005, 16:53]
use CGI::Carp qw(fatalsToBrowser warningsToBrowser);

hatte ich auch im Skript stehen, aber wie gesagt mache das nicht rein, weil es nichts bringt unter Windows.[/quote]
warum nicht? mir hat es schon sehr oft geholfen, und unter windows funktioniert es genauso wie unter linux oder unix...\n\n

<!--EDIT|Strat|1113923508-->
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Strat
 2005-04-19 19:12
#4804 #4804
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=ptk,19.04.2005, 17:04][quote=Taulmarill,19.04.2005, 16:59]besser als #!perl -w ist use warnings, da die #! zeile nur von unixartigen betriebssystemen ausgewertet wird und auch nur, wenn man das script direkt aufruft.[/quote]
Ich bin mir ziemlich sicher, dass perl selbst in die Shebang-Zeile guckt und diese auswertet, auch wenn es ein Nicht-Unix ist.[/quote]
ja, das tut es unter allen mir bekannten unixen/linuxen und windows-versionen...
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Crian
 2005-04-19 19:13
#4805 #4805
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
[quote=Taulmarill,19.04.2005, 16:59]besser als #!perl -w ist use warnings, da die #! zeile nur von unixartigen betriebssystemen ausgewertet wird und auch nur, wenn man das script direkt aufruft.[/quote]
Stimmt: use warnings ist besser, aber nicht aus diesem Grund. Windows ignoriert die Lokation, wertet aber die Parameter aus. Der bessere Grund ist: -w zwingt die Warnungen auch allen eingebundenen Modulen auf, die ggf. gar nicht dafür gedacht sind. use warnings tut das nicht.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
<< |< 1 2 3 4 5 6 >| >> 55 Einträge, 6 Seiten



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