如何在perl中从网站执行一个perl脚本?

时间:2013-05-10 20:04:12

标签: perl file cmd cgi

我正在尝试运行perl脚本,在perl中执行某些操作并从Web浏览器页面创建文件。我使用的是Windows 7。

这是来源:

use CGI;
use warnings;
use strict;

print "Content-type:text/html; charset=utf-8\r\n\r\n";

print "<a href='./#'>START</a>";
system("C:\Perl\bin\perl C:\xampp\htdocs\xampp\bc\create_yaml.pl");

当我加载此页面时,它将打开cmd,但是我要运行的文件将不会创建任何文件。我如何才能发现脚本是否运行?以及如何运行此脚本?

我尝试更改我想要运行的文件的权限,但仍然无效。 谢谢你的回答。


我会尝试做一个简单的例子。但它没有创建任何文件...嗯,这是错的吗?

use CGI;
use strict;
use warnings;

print "Content-Type: text/html; charset=utf-8\n\n";
system("C:\\Perl\\bin\\perl C:\\xampp\\htdocs\\xampp\\vyber\\bc\\test\\create.pl");

create.pl的来源:

open(INFO,">aaaaaaa.txt");
print INFO "voda";
close INFO;

1 个答案:

答案 0 :(得分:1)

我认为你的问题是Windows使用\作为路径名,但是当你把它放在引号中时,你需要转义它,因为它是一个特殊字符。你用\:

逃脱
system("C:\\Perl\\bin\\perl C:\\xampp\\htdocs\\xampp\\bc\\create_yaml.pl");

此外,如果您的环境路径变量设置正确,您可以这样做:

system("perl C:\\xampp\\htdocs\\xampp\\bc\\create_yaml.pl");

或者正如amon指出的那样,你可以使用正斜杠:

system("C:/Perl/bin/perl C:/xampp/htdocs/xampp/bc/create_yaml.pl");