Вот кусок на perl, отражающий все необходимые дейстивия для меня (пример).
#!/usr/bin/perl
use CGI::Carp qw (fatalsToBrowser);
use Geo::IP;
$komm=0.2;
print "Content-type: text/html\\n\\n";
print "
Banners";
$site="
http://bannerdating.com";
$refer="$ENV{\'HTTP_REFERER\'}";
if ($ENV{HTTP_X_FORWARDED_FOR}){$ip ="$ENV{HTTP_X_FORWARDED_FOR}";}
else{$ip ="$ENV{REMOTE_ADDR}";}
if ($refer eq \'\')
{
&system_banner;
}
elsif ($refer !~ /http\\:\\/\\//gi)
{
&system_banner2;
}
else
{
&viev;
}
sub viev
{
use DBI;
$dbh = DBI->connect("DBI:$db:$dbn:$host_db","$login_db", "$pass_db") || die $DBI::errstr;
$users_info_table="info_users";
########Получаем данные
read(STDIN, $buffer, $ENV{\'CONTENT_LENGTH\'});
if (!$buffer)
{
$buffer=$ENV{\'QUERY_STRING\'};
}
@pairs = split(/&/, $buffer);
foreach $pair (@pairs)
{
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s/\\\'//gi;
$value =~ s/\\"//gi;
$F{$name} = $value;
}
##Узнаем текущий час $hour (серверное время)
$t=localtime();
($nedelya,$mesyac,$day,$time,$god)=split(/\\ /,$t);
($hour,$min,$sec)=split(/\\:/,$time);
my $gi = Geo::IP->new(GEOIP_STANDARD);
$country = $gi->country_code_by_addr("$ip");
if ($country eq \'\' || ($country ne "AT" && $country ne "AU" && $country ne "CA" && $country ne "CN" && $country ne "DE" && $country ne "ES" && $country ne "FR" && $country ne "IL" && $country ne "IT" && $country ne "JP" && $country ne "RU" && $country ne "UA" && $country ne "US")) {$country="OT";}
##Получаем номер группы баннера
$sql="select id,id_user from $users_info_table where status=\'1\' and h_$hour=\'1\' and $country=\'1\' and (day_r>day_b or day_r=\'0\') and balans>0 and id_user<>\'$F{id}\' ORDER BY RAND() LIMIT 1";
$sth = $dbh->prepare("$sql");
$sth->execute || die $dbh->errstr;
@id_info=$sth->fetchrow;
$sth->finish;
}
Так уж повелось, что я всегда учусь на примерах.
Вы не могли бы привести пример кода этого же куска, но уже под mod_perl?
Моя задача: ускорить скорость отработки скрипта для банерообменика (показывает баннер и ведет статистику по этому баннеру).
Заранее благодарю.