당신은 함께 같은 CGI.pm 및 FCGI.pm을 사용할 수 없습니다. 중간에 글루 코드가 필요합니다. CGI는 환경에서 물건을 읽어야하기 때문에 호출하는 방식으로 사용할 수 없습니다.
이 작업을 수행하는 Perl에는 CGI::Fast 모듈이 있습니다. CGI과 FCGI을 사용하는 대신 CGI::Fast을 사용하고 약간의 코드를 변경하면됩니다.
use strict;
use warnings;
use CGI::Fast;
my $count;
while (my $q = CGI::Fast->new) {
# $q is a fresh CGI object for the current request
print("Content-type: text/html\r\n\r\n", ++$count);
print "name = " . $q->param("name") ;
print "\n";
}
이미 CGI 스크립트가있는 경우이를 함수에 넣고 해당 루프 내부에서 호출 할 수 있습니다.
CGI :: Fast의 작동 방식에 관심이 있으시면 take a look at its source code on CPAN으로 연락 주시기 바랍니다. 가장 중요한 것은 환경과 파일 핸들 (STDOUT 및 STDERR)을 각각의 새 요청에 매핑해야하며 구현시 CGI가 항상 첫 번째 구문을 구문 분석해야한다는 것입니다.
필자가 링크 한 perldoc과 CPAN의 예제는 구식이며 최신 Perl 코드를 나타내지 않습니다. 이 릴리스 현재 펄에서 제거 된 것처럼
오늘, 당신은 더 이상 probably not use CGI 것입니다. 대신 구현 방법에 대해서는 the PSGI interface specification과 Plack을 살펴볼 수 있습니다. 좋은 점은 다른 배포 기술 (예 : CGI 및 빠른 CGI)에서 명확한 인터페이스를 제공한다는 것입니다. 프로그램을 Apache 또는 nginx가있는 간단한 CGI로 실행하거나 Apache 또는 기타 웹 서버를 사용하여 영구적 인 FCGI 프로세스로 실행하거나 Perl로 작성되고 특정 목적에 맞게 조정 된 다양한 Plac 웹 서버를 통해 독립 실행 형 응용 프로그램으로 실행할 수 있습니다.
재를 "* CGI *이 환경에서 물건을 읽을 필요가 있기 때문에"예,하지만 FCGI는 환경을 설정합니다 적당한. 그건 문제가 아니야. – ikegami