<% $Response->{Clean} = 0; use File::Basename; my $file = $Request->QueryString('file'); if($file) { ## print contents of file here local *FILE; my $basefile = &File::Basename::basename($file); $basefile =~ s/[^a-z\.\_]//sg; unless(open(FILE, $basefile)) { print "Can't read $basefile\n"; $Response->End(); } local $/ = undef; my $data = ; close FILE; $data =~ s|^\#\!\/[^\n]+\n||sg; $data =~ s/^\s+//s; $data =~ s/\s+$//s; my $escaped = $Server->HTMLEncode($data); $escaped =~ s/(<%=?)(.*?)(%>)/ "$1$2<\/font>$3<\/font><\/b>"; /egsx; $escaped =~ s/(<\!\-\-\s*\#include\s*file\s*\=)(.*?)(\-\->)/ "$1$2<\/font>$3<\/font><\/b>"; /egsx; $escaped =~ s/(<\/?)([\w-]+:[\w-]+)/$1\$2<\/b>\<\/font\>/isg; $escaped =~ s/(<\/?)([a-z]+)/$1\$2<\/b>\<\/font\>/isg; %>

Source of file <%=$file%>:

<%= $escaped %>
<% } else { $Response->Write("No file to be displayed"); } %>