После заполнения формы и нажатия волшебной кнопочки в перле получаю переменную с запросом $query="fam=Иванов&im=Иван&otch=Иванович&den_r=01&mes_r=01"какбы так половчее сделать хэш, типа
%hash=(fam,Иванов,im,Иван,otch,Иванович,den_r,01,mes_r,01)?@a=split(/&/,$query), потом потом элементы @a сплитить через /=/... долго
у кого есть готовая короткая и никому не понятная регулярновыраженческая строчка? =)
Неужели каждый начинающий веб-программер хочет изобрести этот велосипед? Что мешает использовать готовые модули, религия или шило в жопе?
>Неужели каждый начинающий веб-программер хочет изобрести этот велосипед? Что мешает использовать готовые
>модули, религия или шило в жопе?модули - черные ящики с лишней хренью... и религия, и щило и еще 10 000 причин не дадут мне использовать модули
read(STDIN, $data, $ENV{'CONTENT_LENGTH'});
$query=urldecode($data);
@formfields=split(/&/,$query);
foreach(@formfields){@zzz=split(/=/,$_);@xxx=(@xxx,@zzz);}
%hash=@xxx;так долинно, наверняка можно регулярным выражением в одну строчку все сделать.
как в split указать разделителем сразу 2 символа (& и =)?
>модули - черные ящики с лишней хренью... и религия, и щило и
>еще 10 000 причин не дадут мне использовать модулиЭто похоже не лечится. Ну изобретайте свой велосипед дальше, когда набьете достаточно шишек можете заглянуть в код уже существующих модулей и увидеть сколько всего вы не учли.
Ну а непосредственно на ваш вопрос ответ простой - определите класс символов: split /[=&]/
>Ну а непосредственно на ваш вопрос ответ простой - определите класс символов:
>split /[=&]/Спасибо =)
>Это похоже не лечится. Ну изобретайте свой велосипед дальше, когда набьете достаточно
>шишек можете заглянуть в код уже существующих модулей и увидеть сколько
>всего вы не учли.+100. Все интернет-протоколы намного сложнее, чем это кажется среднестатистическому программисту. А потом у нас, у юзеров, например, не работают почтовые адреса со знаком "плюс", например foo+bar@example.com. Просто потому что большинство "веб-программистов" считают, что это неправильный адрес, и его просто нельзя ввести в большинство веб-форм регистрации. Список того, что не работает, но должно, можно продолжать до бесконечности.
>Ну а непосредственно на ваш вопрос ответ простой - определите класс символов:
>split /[=&]/В случаи, если значение одного из параметров будет не определенно (Пример: $query="fam=&mes_r=01"), то обработается не корректно. Лучше использовать функцию param модуля CGI.