fastCGI a Perl

Roman Fordinal fordinal na slovanet.sk
Čtvrtek Leden 31 08:02:43 MET 2002


Wednesday, January 30, 2002, 3:34:04 PM, you wrote:

:>> JKV> toto v principe moze byt sposobene len tym, ze po sebe script korektne
:>> JKV> neupratuje .. ( lepsie povedane ze autor sa niekde pozabudol ) 
:>> 
:>> JKV> kolko sa nabaluje jednym spustenim ?
:>> radovo 16-50 kb :) co je hodne. ale treba podotknut ze ide o
:>> generovanie website :) cize stranka ma napriklad (len HTML) 32 kb
:>> v cykle fastcgi su aj funkcie "do" namiesto "require" (aby bolo
:>> umoznene opatovne nacitanie niektorych fcii v davkovych suboroch)

JKV> pokial sa nabali pri jednom spusteni o 16-50 kb a potom to neuvolni, tak je
JKV> takmer jednoznacne chyba na strane programatora ..
:) to som si uvedomil. robim v perle cez 2 roky, ale nepovazujem sa az
za takeho profesionala aby som vedel vsetko. vacsinou som tvoril
scripty pre generovanie HTML, ktore sa spustili raz, takze ma nemuselo
vobec trapit ako sa pamat uvolnuje :)
takze cakam nejaku blbost na mojej strane :)

JKV> to nie su zanedbatelne
JKV> bytes, ktore by sa prejavovali vo velmi specifickych podmienkach ..

JKV> mate poriadok aj v kode, ktory tahate cez require ( do ) ?

ani docela neviem :( vyzeram asi takto a aj ked nepripajam ziadne
dalsie "moduly" pomocou &add_module, vsetko to nabera na objeme. :(

#!/usr/bin/perl -w
use FCGI;
use Mysql;
require "default.conf";
require "default.def";
require "_cookie.mdl";

sub konec
{
 my $request = FCGI::Request();
 $request->Finish();
 print "<BR>EXIT<BR>";
 exit(0);
}

# ADD MODULE
###############
sub add_module
{
 my($tempposition,$name, na variables) = @_;
 do "$name.mdl";
 my $mdl_output;
 if ($mdl_output=&ModulAdd(@variables))
 {
  $html_write{$tempposition}="$html_write{$tempposition}$mdl_output";
 }
 local $mdl_length=length($mdl_output);
 undef &ModulAdd;
 undef $mdl_output;
}



###############
#
###############

my $req=FCGI::Request();
local $HTML_TEMP="$html_header$html_up$html_body$html_footer";

while ($req->Accept() >= 0)
{
 local $current_time=time;
 local %cookie;
 local %html_write;
 local %form;&GetQueryString;
 my $html_temp=$HTML_TEMP;
 ############################################################
 # START A INICIALIZACIA
 ############################################################
 $fastcount++;

 if ($form{type} eq "crash"){&konec}
 if (!$form{type}){$form{type}="first";}
 local $dbh = Mysql->Connect($db_host,$db_name,$db_user,$db_pass);
 &get_cookie();

 # BASE MODULES
 &add_module('00-01',"_check_online");
 &add_module('99-99',"_superlog");

 # TYPE MODUL (ADD_MODULE'S)
 do "type_$form{type}.mdl";

 foreach $key (sort keys %html_write)
 {
  $html_temp=~s|<%TMP$key%>|$html_write{$key}|g;
 }

 $cookie{name}="hocico";
 &set_cookie("-1","192.168.0.1","/","0");

 &PrintHeader;
 print $html_temp;


 ###############
 # UNDEF     !!!
 ###############

 undef %cookie;
 undef %html_write;
 undef %form;
 undef $html_temp;
}



  

:
:..                      Roman Fordinal
:.: fordinal na slovanet.sk



Další informace o konferenci Perl