Bisher programmiere ich in PHP und Perl. Jetzt bin ich auf Python gestossen und finde besonders den Ansatz ohne { } zu arbeiten echt klasse.
Doch um mich zu ueberzeugen, das Python ein Ersatz fuer Perl ist, der ebenso elegant (oder eleganter) ist, brauche ich eure Hilfe. Bitte helft mir, dieses Perl-Programm zu übertragen:
Code: Alles auswählen
#!d:\perl\bin\perl.exe -w
use strict;
my $datei = "server.txt";
my $zeilennr = 0;
my $titel = "Pruefe Serverliste";
my @spalten;
my $i = 0;
print "+" . "-" x (length($titel)+2) . "+\n";
print "| " . $titel . " +\n";
print "+" . "-" x (length($titel)+2) . "+\n";
open(DATEI, $datei);
while (<DATEI>){
$zeilennr++;
if (/^#!/){
$_ =~ s/^...//;
@spalten = split( / \| /, $_);
}
s/#.*//; # Kommentarzeilen leeren
next if /^\s*$/; # leere Zeilen ueberspringen
@_ = split(/ \| /, $_);
if (@_ < @spalten){
print "Fehler in Zeile " . $zeilennr . ":\n";
print $_ . "\n";
}
}
print "\n" . $zeilennr . " Zeilen gesamt\n";
close(DATEI);
Die Zeilen bestehen aus Spaltenwerten, die mit <SPACE>|<SPACE> getrennt sind.
Das Programm sucht Zeilen, die weniger Spalten als die Referenzspalte (die mit #!) haben.
Kriegt man das eleganter hin?
Danke
w1se