Я попытаюсь ответить на этот вопрос еще раз, так как, по-видимому, в прошлый раз, когда я его задал, я не очень хорошо это сделал ... И снова:
У меня есть этот бит кода, который принимает параметрыиз веб-формы и в зависимости от входного параметра должен отображать текст в текстовой области.
Оператор if, который устанавливает переменную $ defMessage, выполняется правильно, но независимо от значения входных переменных текст по умолчанию втекстовая область не изменяется на фактическое значение, сохраненное в $ defMessage.
Кто-нибудь может определить, почему это может происходить?
my $defMessage = undef;
$defMessage = 'CONCAT 1';
if ($templateLength =~ SEND_OPTIONS_CONCAT_1) {
$defMessage = 'CONCAT 1';
} elsif ($templateLength =~ SEND_OPTIONS_CONCAT_2) {
$defMessage = 'CONCAT 2';
} elsif ($templateLength =~ SEND_OPTIONS_CONCAT_3) {
$defMessage = 'CONCAT 3';
}
print $q->start_form(
-name=>'main',
-method=>'POST',
);
print $q->start_table(
{-align=>'center', -border=>1}
);
print $q->Tr(
$q->td(
{-align=>'center'},
'Message<br>'.$q->textarea(
-name=>'sendMessage',
-size=>15,
-rows=>10,
-columns=>15,
-value=>$defMessage,
),
),
);
Я пытался изменить
my $defMessage = undef;
до
use vars qw($defMessage);
но это тоже не сработало ...