Perl elsif语句是';t在apache2脚本中工作

Perl elsif语句是';t在apache2脚本中工作,perl,apache2,cgi,Perl,Apache2,Cgi,因此,我必须创建一个网站,使用apache中的cgi脚本创建其他网站 My index.html必须使用表单,以便用户选择一个选项 <html> <head></head> <body> <h1>Welcome to Magnum system check</h1> <form action="/c

因此,我必须创建一个网站,使用apache中的cgi脚本创建其他网站

My index.html必须使用表单,以便用户选择一个选项

            <html>
            <head></head>
            <body>
            <h1>Welcome to Magnum system check</h1>

            <form action="/cgi-bin/main.pl" method="POST" target="_blank">
              <input type="radio" name="option" value="processes" checked> View my processes<br>
              <input type="radio" name="option" value="calendar"> View the calendar<br>
              <input type="radio" name="option" value="location"> View my location coordinates<br>
              <input type="radio" name="option" value="users"> View all users connected on my system<br>
              <input type="radio" name="option" value="file"> Find a file or directory<br>
              <input type="submit" value="Submit">
            </form>

            </body>
            </html>
它在新创建的html中打印选定的值。现在,由于每个选项都必须做一些不同的事情,我决定为每个选项做一个elsif。(我尝试使用给定的命令,但从未编译)

因此,以下代码的问题在于,它只适用于第一个选项(进程)。每当我选择另一个选项时,它默认为“不工作”


你知道为什么它不起作用吗?或者有更好的替代elsif的方法吗?

正如@mob在评论中指出的,将所有
@选项更改为
$option

if($option eq "processes") {
       print "Processes";
} elsif($option eq "calendar") {
       print "Calendar";
} elsif($option eq "location") {
        print "Location";
} elsif($option eq "users") {
        print "Users";
} elsif($option eq "file") {
        print "File";
} else {
       print "Not working";
}
如果在脚本顶部添加此项,Perl将向您提供有关未定义变量的警告,以便您将来避免此类错误:

use strict;
use warnings;

提示:
@option
$option
不同。第二个提示:
严格使用;使用警告哇。真不敢相信我竟然没注意到。谢谢我们有时都不会注意到一些事情<代码>使用严格;使用警告将帮助您注意到一些事情。
if($option eq "processes") {
       print "Processes";
} elsif($option eq "calendar") {
       print "Calendar";
} elsif($option eq "location") {
        print "Location";
} elsif($option eq "users") {
        print "Users";
} elsif($option eq "file") {
        print "File";
} else {
       print "Not working";
}
use strict;
use warnings;