perl

Mar. 21st, 2011 02:34 pm
nataraj: (Default)
[personal profile] nataraj
Как бы вы записали на перле, "ко всем элементам списка кроме первого добавить в начале пробел"?

Получается что-то вроде
$a=[shift @$a, map {" $_"} @$a];
что работает, но как-то очень сильно попахивает write-only выражением... Особенно когда у нас $a не $a, а $data->{babuka_strashnaya}->{zakaryukf}

Date: 2011-03-21 11:59 am (UTC)
vitus_wagner: My photo 2005 (Default)
From: [personal profile] vitus_wagner
Я б писал на побочных эффектах. Ну и локальную ссылку на список бы завел.

my $a=$data->{babuka_strashnaya}->{zakaryukf}
for (my $i=1; $i<$#{$a};$i++) {
$a->[i]=" ".$a->[i]
}

Date: 2011-03-21 03:02 pm (UTC)
From: [identity profile] beldmit.livejournal.com
Эм... А зачем тебе сие?

Date: 2011-03-21 04:41 pm (UTC)
ext_613079: Default userpic (Default)
From: [identity profile] shaplov.livejournal.com
Это долгая и совершенно не поучительная история:

1. подсети разделяются запятыми. При этом вокруг запятой может быть сколько угодно пробелов
2. Submit'ов у формы несколько... они все могут не приводит к отправки данных на сервер, а возвращают назад на старую экранную форму (ситуация с добавлением строки, или с не прошедшей валидацией)
3. Разборщик пришедших данных на все субмиты один
4. В случае если валидация не прошла то человеку надо показать ровно те данные которые он вводил, никак не измененные.
5. В стурктуре данных сабнеты живут как ссылка на массив строк (они так из базы приходят)
6. Соответсвенно из пункта 4 и 5 следует что при разборе пришедших данных мы режим строку ровно по запятым, оставляя все пробелы на месте, и в случае если валидация не прошла, то возвращаем в форму все как было с пробелами, где их через ту же запятую все восстанавливается в режиме как былО. Ведущие и оставшиеся пробелы отрезаются на этапе коммита в базу.
7. Поскольку в п.6 мы выяснили что данные надо join'ить по запятой без пробела, а красиво когда с запятой и пробелом, то когда данные приходят из базы, перед тем как передать их в шаблон хорошо бы добавить пробел перед каждым элементом кроме первого, чтобы было красиво

Как-то вот так...

Profile

nataraj: (Default)
Swami Dhyan Nataraj

July 2024

S M T W T F S
 123456
789 10111213
14151617181920
21222324252627
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 21st, 2026 01:01 am
Powered by Dreamwidth Studios