wolverina has asked for the wisdom of the Perl Monks concerning the following question:
#!/usr/local/bin/perl $InputFile = "input.txt"; $TextFile = "original_file.pl"; $Filetext= "modified_file.pl"; $CGIURL = "http://www.webiste/cgi-local/mainfile.pl"; print "Content-type: text/html\n\n"; read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); @pairs = split(/&/, $buffer); foreach $pair (@pairs){ ($name, $value) = split(/=/, $pair); $name =~ tr/+/ /; $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; if ($FORM{$name}) { $FORM{$name} = "$FORM{$name}, $value"; } else { $FORM{$name} = $value; push (@variables,$name); } } if ($FORM{'TextFile'}) { &SendFile; } if (-d $TextFile) { opendir(FILES,$TextFile); @tempfiles = readdir(FILES); closedir(FILES); foreach $file (@tempfiles) { if (-T "$TextFile/$file") { push (@files, $file); } } srand(); $files = @files; $file = @files[int(rand($files))]; $TextFile = $TextFile."/".$file; } open (FILE,"$TextFile"); @LINES = <FILE>; close (FILE); $text = join(' ',@LINES); $text =~ s/\n/ /g; $text =~ s/</\n</g; $text =~ s/>/>\n/g; @text = split('\n',$text); undef (@variables); foreach $line (@text) { if ($line =~ s/<!--(.*)-->/$1/) { push (@variables,$line); } } @sortedvariables = sort (@variables); open (FILE,"$InputFile"); @LINES = <FILE>; close (FILE); foreach $line (@LINES) { if ($line =~ /<!--InputWords-->/i) { print "<FORM METHOD=POST ACTION=\"$CGIURL\">\n"; print "<INPUT TYPE=HIDDEN NAME=TextFile "; print "VALUE=\"$TextFile\">\n"; print "<P><CENTER><TABLE>\n"; foreach $variable (@sortedvariables) { next if ($variable eq $lastvariable); print "<TR><TD ALIGN=RIGHT><P>$variable: </TD>"; print "<TD><INPUT TYPE=TEXT NAME=\"$variable\" SIZE=25>"; print "</TD></TR>\n"; $lastvariable = $variable; } print "</TABLE></P>\n"; print "<P><INPUT TYPE=SUBMIT VALUE=\"LOAD\">\n"; print "</CENTER></P></FORM>\n"; } else { print $line; } } exit; sub SendFile { open (FILE,"$FORM{'TextFile'}"); @LINES = <FILE>; close (FILE); $text = join(' ',@LINES); #$text =~ s/\n/ /g; $text =~ s/^\s+//; $text =~ s/\s+$//; foreach $variable (@variables) { if ($FORM{$variable} eq "") { print "incomplete!\n"; exit; } $text =~ s/<!--$variable-->/$FORM{$variable}/g; } #$text =~ s/A\/an <STRONG>(a|e|i|o|u)/An <STRONG>$1/g; #$text =~ s/a\/an <STRONG>(a|e|i|o|u)/an <STRONG>$1/g; #$text =~ s/A\/an/A/g; #$text =~ s/a\/an/a/g; open(OUT,">$Filetext") or die $!; print OUT "$text\n" or die $!; close(OUT) or die $!; exit; }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: space in front of lines
by grinder (Bishop) on Nov 05, 2002 at 08:55 UTC | |
by BUU (Prior) on Nov 05, 2002 at 14:15 UTC | |
|
Re: space in front of lines
by davorg (Chancellor) on Nov 05, 2002 at 10:59 UTC | |
by wolverina (Beadle) on Nov 06, 2002 at 00:30 UTC | |
by davorg (Chancellor) on Nov 06, 2002 at 07:43 UTC | |
by wolverina (Beadle) on Nov 08, 2002 at 00:12 UTC |