#! c:/perl/bin/perl fetch_params(); $page{img} =$param{img}; print "Content-type:text/html\n\n"; print( insert("c:\\web\\seuratt\\doc\\img.html", \%page) ); exit; sub insert { my $file = shift; my $arrayref = shift; my ($contents); if (ref($file) eq 'SCALAR') { $contents = $$file; } else{ open(FILE, $file) or die("no $file!"); $contents = "@{[]}"; close FILE; } $contents =~ s#\$(\w+)#$$arrayref{$1}#g; return $contents; } sub oops { my ($message) = shift; my ($lineNum) = shift; print "Content-type:text/html\n\n"; print "$message : oops at $lineNum"; exit; } sub fetch_params{ my ($form_info); if ($ENV{'REQUEST_METHOD'} eq 'GET'){ $form_info = $ENV{'QUERY_STRING'}; } elsif ($ENV{'REQUEST_METHOD'} eq 'POST'){ my($size_of_form_info) = $ENV{'CONTENT_LENGTH'}; read (STDIN, $form_info, $size_of_form_info); } foreach $pair (split (/&/, $form_info)) { ($key, $value) = split (/=/, $pair); $key =~ s/%([\dA-Fa-f][\dA-Fa-f])/pack ("C", hex ($1))/eg; $value =~ s/\%0D//eg; #don't ask.. it's a CR thing.. $value =~ s/%([\dA-Fa-f][\dA-Fa-f])/pack ("C", hex ($1))/eg; $value =~ s/\+/" "/eg; $param{$key} = $value; } }