Apache-Scriptor

 view release on metacpan or  search on metacpan

Scriptor.pm  view on Meta::CPAN

{ my ($th)=@_;
  # ðàñøèðåíèå ôàéëà
  my ($ext)  = $ENV{SCRIPT_FILENAME}=~m|\.([^.]*)$|; if(!defined $ext) { $ext=""; }

  # âûáèðàåì ñïèñîê îáðàáîò÷èêîâ äëÿ ýòîãî ðàñøèðåíèÿ
  $th->{Handlers}{$ext} 
    or die "$ENV{SCRIPT_NAME}: could not find handlers chain for extension \"$ext\"\n";

  # âõîäíîé áóôåð (âíà÷àëå â íåì ñîäåðæèìîå ôàéëà, åñëè äîñòóïíî)
  my $input="";
  if(open(local *F, $ENV{SCRIPT_FILENAME})) { local ($/,$\); binmode(F); $input=<F>; }

  # ïðîõîäèìñÿ ïî âñåì îáðàáîò÷èêàì
  my $next=1; # íîìåð ñëåäóþùåãî îáðàáîò÷èêà
  my @hands=@{$th->{Handlers}{$ext}};
  NoAutoflush() if @hands>1;
  foreach my $hand (@hands)
  { # Îáúåêò ïåðåíàïðàâëåíèÿ âûâîäà. Åñëè ó íàñ âñåãî îäèí îáðàáîò÷èê, òî 
    # ïåðåíàïðàâëÿòü âûâîä íå ïîòðåáóåòñÿ. Èíà÷å - ïîòðåáóåòñÿ, ÷òî è äåëàåòñÿ
    my $OutObj=$hands[$next++]? CGI::WebOut->new : undef;
    my $func=$hand; # óêàçàòåëü íà ôóíêöèþ



( run in 1.015 second using v1.01-cache-2.11-cpan-87723dcf8b7 )