0

我正在努力将 perl Web 应用程序的界面转换为Ext并打算使用CGI-ExtDirect-2.02库。

但是我遇到了一个问题,经过几个小时的努力,仍然没有解决。

在最简单的用例中,问题是:当我将以下几行添加到操作方法中时,例如,添加Demo/TestAction/getGridRouter.pm. apache在库服务器下执行或使用包含在库p5httpd.pl服务器中时,都会出现相同的错误。

当我删除while(<FILE>)循环时,错误消失了,其他一切正常。

系统配置为:

SunOS 5.10, apache 2, perl 5.12.1.

我添加的行:

open(FILE, "</tmp/test.txt") or die("Can't open file: $!");
while (<FILE>) {
    ;
}
close(FILE);

错误:

5571 17:58:08 Server started on port 5000.
5571 17:58:08
5571 17:58:08 Point your browser at http://localhost:5000
5571 17:58:11 <- localhost: GET /direct-grid.html HTTP/1.1
5571 17:58:11 -> 200 OK /direct-grid.html: 803 bytes sent as text/html
5571 17:58:11 <- localhost: GET /example.css HTTP/1.1
5571 17:58:11 -> 200 OK /example.css: 1501 bytes sent as text/css
5571 17:58:11 <- localhost: GET /direct-grid.js HTTP/1.1
5571 17:58:11 -> 200 OK /direct-grid.js: 1599 bytes sent as application/x-javascript
5571 17:58:11 <- localhost: GET /cgi-bin/api.cgi HTTP/1.1
5571 17:58:11 -> exec'ing api.cgi
5571 17:58:13 <- localhost: POST /cgi-bin/router.cgi HTTP/1.1
5571 17:58:13 <- Content-length: 119, type: application/json; charset=UTF-8
5571 17:58:13 -> exec'ing router.cgi

Can't call method "result" on an undefined value at
/usr/perl5/site_perl/5.12.1/RPC/ExtDirect/Router.pm line 136. 
5571 17:58:13 -> 500 Internal Server Error Premature end of script headers.
<br> Status: 65280<br>Have a look at server log for stderr output of /cgi-bin/router.cgi
4

1 回答 1

0

如果循环与问题无关,那么FILE超全局可能与某些东西冲突有问题。尝试将其更改为类似

open my $if, "<", "/tmp/test.txt";
while(<$if>) {
    # whatever
}
close $if;
于 2013-05-28T21:11:02.123 回答