#!Perl -w ##zusatz use CGI::Carp qw(fatalsToBrowser); $datens = &CGIDlesen; %dat = &CGIDaufbereiter($datens); if($dat{func} eq ''){ first(); } if($dat{func}eq 'writes'){ writes($dat{datei}); } if($dat{func} eq 'writed'){ writed($dat{datei}, $dat{text}); } sub first{ printhead('Datenschreiber'); print 'In welche Datei soll geschrieben werden?
'; printfoot(); } sub writes{ open(DATEI, "<$_[0]"); @zeilen = ; close(DATEI); printhead('Datenschreiber'); print 'In der Datei "'.$_[0].'" steht folgendes:

'; my $i = 0; foreach(@zeilen){ $i++; my $einz = $_; print "$einz".'
'; } print '

Wollen sie etwas schreiben so geben sie es hier ein:


'; printfoot(); } sub writed{ open(DATS, ">>$_[0]"); print DATS "$_[1]"; close(DATS); printhead('Datenschreiber'); $_[1] =~ s/\n/
/go; print '

Scheiben erfolgreich!

In die Datei "'.$_[0].'" wurde folgendes geschrieben:

'; print $_[1]; printfoot(); } sub CGIDlesen { local $cgidaten; if( $ENV{REQUEST_METHOD} eq 'POST') { read(STDIN, $cgidaten , $ENV{'CONTENT_LENGHT'}); } else { $cgidaten = $ENV{QUERY_STRING}; } return $cgidaten; } sub printhead { local $title = $_[0]; print "Content-type: text/html\n\n"; print ''; print ''; print ''; print $title; print ''; print ''; } sub printfoot { print ''; print ''; } sub CGIDaufbereiter { local ($cgidatenskalar, $name, $daten); local @cgidatenliste; local %cgidatenhash; if( $_[0] ) { $cgidatenskalar = $_[0]; @cgidatenliste = split(/[&;]/ , $cgidatenskalar); foreach $listeneintrag (@cgidatenliste) { $listeneintrag =~ s/\+/ /go; ($name, $daten) = split( /=/ , $listeneintrag ); $name =~ s/\%(..)/pack("c",hex($1))/ge; $daten =~ s/\%(..)/pack("c",hex($1))/ge; $cgidatenhash{$name} = $daten; } } return %cgidatenhash; }