我正在尝试是否使用 Changecolor。我不明白我做错了什么

I'm trying for if or else with Changecolor. I don't understand what I'm doing wrong

这是一个红色或绿色变化的彩色按钮。这里有一个通过颜色变化来点击按钮的功能。但是点击2次,就不再是变色了。它保持与绿色相同的颜色,不能进一步变为红色按钮。我正在尝试 "while, do, or"。但我不明白。请帮助我。

use warnings;
use strict;
use CGI;
use CGI::Carp qw(fatalsToBrowser);

my $cgi = new CGI;
my $setcolor;
my $newcolor;
my $changecolor;

这是一个 img/url 按钮:

print "<td><a href=\"../max.cgi?changecolor=$newcolor\" target=\"_parent\"><img src=\"http://../images/ts${setcolor}.png\"/></a></td>\n"; 

这是一个函数:

if ($cgi->param('changecolor')) {
    $setcolor=$cgi->param('changecolor');
    if ($setcolor=='red') {
        $newcolor='gre';
    }
}
else {
    $setcolor='gre';
    $newcolor='red';
}

还有一个:

if ($cgi->param('changecolor')) {
    $setcolor=$cgi->param('changecolor');
    if ($setcolor=='red') {
        $newcolor='gre';
        while($setcolor=='gre') {
            $newcolor='red';
        }
    }
}
else {
    $setcolor='gre';
    $newcolor='red';
}

我猜你的函数应该是这样的:

if ($cgi->param('changecolor'))
{
    $setcolor=$cgi->param('changecolor');
    if ($setcolor eq 'red')
    {
        $newcolor='gre';
    }
    elsif ($setcolor eq 'gre')
    {
        $newcolor='red';
    }
}