Перл, задача для первоклассника ...

Все, что вы хотели знать о программизме, но боялись спросить.
Ответить
Аватара пользователя
Seaman
Пользователь
Сообщения: 197
Зарегистрирован: 21 фев 2003, 13:26
Откуда: Ессентуки-Нврск-СПб-Торонто

Перл, задача для первоклассника ...

Сообщение Seaman »

Но почему-то не решается :?
Есть две формы и два абсолютно одинаковых куска скрипта:

Код: Выделить всё

foreach $key($q->param()){
	$input{$key}=$q->param($key);
	if ($key eq 'topic'){
		push(@input, $input{'topic'});
	}
}
print "Content-Type:text/html\n\n";
print "Topics: @input";
$key='topic' принадлежит чекбоксам на формах
В обоих случаях в Address Bar мы читаем: '...&topic=1&topic=3&topic=5&topic=6&...'
А вот распечатка аррея @input разная:
В первом случае: 'Topics: 1,3,5,6Content-Type: text/html; charset=ISO-8859-1';
А во втором случае: 'Topics: 1Content-Type: text/html; charset=ISO-8859-1 '.
Формы: в первом случае обыкновенная HTML, cкрипт - отдельный файл;
во втором - CGI фома, скрипт на том же файле, что и форма (sub Main).
Во втором случае использую

Код: Выделить всё

$q->checkbox_group(	-name => 'topic',
		-values => [sort {$a <=> $b} keys %topics],
		-default => \@topics,
		-labels => \%topics,
		-columns => '2',
		-class => 'normal')
в качестве чекбоксов. (Пробовал использовать scrolling_list - результат тот же)

Ничче не понимаю!!!
Поможите чайнику, объясните где собака порылась.
Аватара пользователя
Seaman
Пользователь
Сообщения: 197
Зарегистрирован: 21 фев 2003, 13:26
Откуда: Ессентуки-Нврск-СПб-Торонто

Сообщение Seaman »

Все, нашел, param, как оказалось уже аррэй дает в этом случае,
:shock:

Код: Выделить всё

foreach $key($q->param()){
      if ($key eq 'topic'){
            @input = $q->param('topic');
      } else {
            $input{$key} = $q->param($key);
      }
}
а я-то этого не знал. Ну чтож, ЧАЙНИК он и есть ЧАЙНИК! :oops:

Пап Карло, закрой тему, пожалуйста.
Ответить