Perl 如何从.pm文件调用.cgi文件来运行?

Perl 如何从.pm文件调用.cgi文件来运行?,perl,cgi,Perl,Cgi,在我的.pm文件中,我使用内容类型text/html来编写网页的源代码。我还需要编写一个下载代码,为此我需要将我的内容类型指定为“content-type:application/x-download”。我试着把它放在我的.pm文件中,但浏览器会感到困惑,并在网站上打印上面引用的行。因此,我将在一个单独的.cgi文件中编写以下下载代码。现在,我需要从.pm文件调用这个.cgi文件,还需要将参数传递给.cgi文件。请帮忙?我尝试的是: .pm文件: ... system('downloadscri

在我的.pm文件中,我使用内容类型text/html来编写网页的源代码。我还需要编写一个下载代码,为此我需要将我的内容类型指定为“content-type:application/x-download”。我试着把它放在我的.pm文件中,但浏览器会感到困惑,并在网站上打印上面引用的行。因此,我将在一个单独的.cgi文件中编写以下下载代码。现在,我需要从.pm文件调用这个.cgi文件,还需要将参数传递给.cgi文件。请帮忙?我尝试的是:

.pm文件:

...
system('downloadscript.cgi', $fileholder);
...
.cgi文件:

#!/usr/bin/perl
use strict;
use warnings;
use CGI ':standard';
use CGI::Carp qw(fatalsToBrowser);

my $ID = "sample.txt";
my $fileholder = shift;  

if ($ID eq '') {   
print "Content-type: text/html\n\n";   
print "You must specify a file to download.";   
} else {  
print "Content-Type:application/x-download\n";   
print "Content-Disposition:attachment;filename=$ID\n\n";  
print $fileholder;  
}

当我执行此操作时,不会发生任何事情。任何帮助都将不胜感激。

在.pm文件中调用cgi文件没有帮助,请创建.pm文件的包装并调用cgi文件

了解如何将代码结构化为子例程和库。不要运行整个程序,而是加载库并调用其中的特定子例程。检查服务器访问日志和错误日志。这里的.pm文件有什么意义?在我看来,您的.cgi程序正在成为问题的完整解决方案。