как ни странно но иногда такие скрипты бывают полезны

!/usr/bin/perl

#use CGI::Carp qw(fatalsToBrowser);
use strict;
use Fcntl;
use bytes;

close(STDIN);

my $page = <<DATA
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv=Content-Type content="text/html;charset=utf-8">
<meta http-equiv="Pragma" content="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
<META HTTP-EQUIV="CONTENT-LANGUAGE" CONTENT="en-US">
<title>Evironment Variables</title>
<style type=text/css>
<!--
body,table,td.gbox,td.normal{ margin: 0}
body{ font-family: sans-serif, arial, helvetica, monospace; text-align: left; background-color: #fff; }
table{ width: 100%; border: 0; border-collapse: separate; padding: 0; border-spacing: 1px; }
td.gbox,td.normal{ border: 1px silver solid; padding-left: 2px; padding-right: 2px; }
td.gbox{ background-color: rgb(204, 204, 204);  padding-bottom: 4px; padding-top: 4px; text-align:center; }
td.normal{ padding-bottom: 0; padding-top: 0; }
-->
</style>
</head>
<body>
<table>
<tbody>
<tr><td colspan=2><b>Evironment Variables</b></td></tr>
DATA
;
my($k);
my(@arr);
my($i) = 0;
foreach $k (keys (%ENV)) {
    $arr[$i] = $k;
    $i++;
}
@arr = sort(@arr);
foreach (@arr){
    $page .= '<tr><td>' . $_ . '</td><td>' . $ENV{$_} . '</td></tr>' . "\n";
}
$page .= "</tbody>\n</table>";

if(defined($ENV{PERLXS})){
    if ($ENV{PERLXS} eq 'PerlIS'){
        $page .= "<p>script is running perlIS.dll</p>\n";
    }
}
$page .= <<DATA
</body>
</html>
DATA
;

my $length = length($page);
#$| = 0;
# ранний сброс буферов вывода, если страничка небольшая и простенькая, то это как правило
# влечёт за собой небольшую потерю в производительности
# данная практика хорошо работает на сравнительно небольших и средних страничках, до 100-120
# килобайт, дальше дело упирается в браузер, например тот же IE или FF не очень быстро рисуют
# большие странички в некоторых случаях отключение буферизации или частый сброс буферов может
# негативно сказаться на производительности сервера, возрастёт загрузка процессора.
# таким образом планировать правильный сброс буферов веб-приложения надо исходя из скорости
# формирования и выдачи странички, её объёма, насыщенности включаемыми объектами (внешние стили,
# яваскрипты, картинки, флэш-ролики).

syswrite STDOUT, <<EOF
Pragma: no-cache
Cache-Control: no-cache
Content-Language: en, ru
Content-type: text/html
Content-Length: $length

EOF
;
syswrite STDOUT, <<EOF
$page
EOF
;

close(STDOUT);
close(STDERR);
exit 0;

Конечно выглядит этот скрипт несколько академически :)

Next Post