Perl(使用CGI)如果没有包或对象引用,则无法调用方法"header"

Lig*_*ger 0 oop perl cgi

好吧,十年来第一次使用Perl,有点生疏.从那时起思考也许是一些更新(天才吧?)

Alrighty,这是Perl 5,版本16,颠覆3 x86_64-linux-thread-multi,在AWS micro上有29个已注册的补丁.

Perl附带了它,我只是安装了perl-CGI perl-Data-Dumper

#!/usr/bin/perl
use CGI;                                        # load cgi routines
my $q = CGI>new;                                # cgi object
print   $q->header(),
        $q->start_html("Hello World"),
        $q->h1('Hello'),
        $q->end_html;
~
Run Code Online (Sandbox Code Playgroud)

当我逐步构建程序时,似乎有一个简单而直截了当的可能性.但是如果我在命令行(或浏览器)运行它,我会遇到错误.

如果没有创建第4行的包或对象引用,则无法调用方法"header".

第4行是打印$ q-> header(); "create"是文件名.

有任何想法吗?让我了解Perl 2017的最新消息?生锈的问题总是非常简单.

Dav*_*oss 5

看起来像一个错字.

my $q = CGI>new;
Run Code Online (Sandbox Code Playgroud)

应该是

my $q = CGI->new;
Run Code Online (Sandbox Code Playgroud)

Perl将您的代码解释为:

my $q = 'CGI' > 'new';
Run Code Online (Sandbox Code Playgroud)

所以你最终会得到一个假值(可能是一个空字符串)$q.你不能在空字符串上调用方法:-)