1

我正在编写一个 Nginx 配置,它调用一个带有一些 Nginx 变量作为参数的 perl 脚本,并向脚本返回一个值,就好像 Nginx.conf 是这个 perl 脚本的主要部分一样。我已经在 Nginx 上启用了 perl 模块,并从 nginx 配置成功运行了一个 helloworld。作为 perl 的新手,你能帮我知道这是什么问题吗?这是我的 test.pm

#!/usr/bin/perl

sub function {
    my $r = shift;
    my $foo = $r->variable('foo');
    print $foo;
}

这就是我在 Nginx.conf 上的称呼

 set $foo 100;
 perl My::function ;

这就是我在控制台上得到的

nginx: [emerg] require_pv("test.pm") failed: "test.pm did not return a true value   at     (eval 1) line 1."

如果我像这样更改我的 nginx conf

 perl My::function 100 ;

我明白了

nginx: [emerg] invalid number of arguments in "perl" directive in /usr/local/nginx  /conf/nginx.conf:22
4

1 回答 1

0

你想要 $r->print 而不仅仅是 print 和 1; 在最后

于 2018-10-18T23:11:41.147 回答