Thread Such-Script gesucht
(15 answers)
Opened by WOtAN at 2005-08-03 12:47
wenn du use strict; und use warnings; verwendest, tust du dir beim fehlersuchen viel leichter. Auf meiner Homepage steht unter Vortraege meine Einfuehrung in Perl, da wird ein wenig dazu erklaert.
Code: (dl
)
open (SR, $file); kann es mal passieren, dass das oeffnen der Datei fehlschlaegt? Wenn man bei Befehlen, die nach aussen gehen, immer fehler abfragt, hat man gleich 90% weniger probleme. Code: (dl
)
open (SR, "<$file") or die "Error: couldn't open file '$file': $!\n"; oder Ein CGI-Script wuerde ich folgendermaszen beginnen: Code (perl): (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 #! /usr/bin/perl use warnings; # aktiviert die Warnungen, die oft hilfreich sind use strict; # ueberprueft code strenger auf korrektheit, siehe meinen Vortrag use CGI; # hier werden fehler/warnungen im browser ausgegeben; das hilft # sehr beim entwickeln, sollte aber, sobald alles laeuft, deaktiviert # werden, um z.B. einem Hacker moeglichst wenig Infos zu geben: use CGI::Carp qw(fatalsToBrowser warningsToBrowser); # stellt die Variable $FindBin::Bin zur verfuegung; die enthaelt den # pfad zum ausgefuehrten script, weil bei einem webserver # nicht sichergestellt ist, dass er immer in das verzeichnis des # scriptes wechselt, in dem das script liegt. Und durch # verwendung von FindBin wird das Script unabhaengiger von aussen use FindBin; my $file = "$FindBin::Bin/lyrics.db"; # neues CGI-Objekt erzeugen my $cgi = CGI->new(); # http-header ausgeben: print $cgi->header(); # parameter einlesen: my $sinterpret = lc( $cgi->param('interpret') ); my $stitle = lc( $cgi->param('title') ); # datei oeffnen: unless (open (SR, "<$file")) { die "Error: couldn't open file '$file': $!"; } # unless # einlesen: while (my $rid = <SR>) { my $interpret = lc(<SR>); my $title = lc(<SR>); chomp($rid); chomp($interpret); chomp($title); # zeilenenden abschneiden # usw. } # while # datei schliessen close (SR); <!--EDIT|Strat|1123061811--> perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/ |