информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Где водятся OGRыSpanning Tree Protocol: недокументированное применениеПортрет посетителя
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
grep на chomp? 17.07.04 01:00  Число просмотров: 1307
Автор: Heller <Heller> Статус: Elderman
<"чистая" ссылка>
Скорее замены $_=~ s/\r|\n//g на chomp, а grep заменить на map..
Согласен с dl, но ещё на днях сам посмотрю по-подробнее
<programming>
[bum, perl] Функция замороченная. 1 шт. 16.07.04 20:00  
Автор: !? <!?> Статус: Member
<"чистая" ссылка>
Смысл выкладывания сюда этой функции,- сделать её лучше ;). Сам не могу, тк не имею хорошего опыта работы на perl, но вижу, что это выглядит просто нелепо по сравнению с чистым кодом ;).

Комменты:
Массив @xMA содержит список, элементы которого или равны "checked", или "".
Количество элементов напрямую связано с файлами "conf/ma/".$x, содержащими ID пользователей, имеющих "checked" в массиве @xMA с индексом $x.
Конечно, на всякий случай для каждого пользователя создаётся отдельная запись, но это на случай повреждения какого либо из "conf/ma/".$x.

for ($x= 0; $x< 2; $x++)
{
open $xT, "conf/ma/".$x;
@xT= <$xT>;
close $xT;
grep {$_=~ s/\r|\n//g;} (@xT);
if (@xMA[$x] eq "checked")
{
$x0= 0;
foreach (@xT)
{
$x0= 1 and last if $uID eq $_;
}
push @xT, $uID if $x0 eq 0;
} else
{
for ($xT= 0; $xT< @xT; $xT++)
{
@xT[$xT]= "" and last if @xT[$xT] eq $uID;
}
}
open $xT, ">conf/ma/".$x;
foreach (@xT)
{
print $xT $_."\n" if $_ ne "";
}
close $xT;
}
не считая мелочей типа замены grep на chomp... 17.07.04 00:54  
Автор: dl <Dmitry Leonov>
<"чистая" ссылка>
...значительно эффективней будет сложить идентификаторы не в массив, а в хэш, в котором хранить только checked, это избавит от необходимости крутить циклы и сильно упростит код.
И все-таки стоит завязывать с привычкой использовать @x[$i] вместо $x[$i], это лишние преобразования.
Если честно, я не понял что имеется в виду.. 17.07.04 06:21  
Автор: !? <!?> Статус: Member
<"чистая" ссылка>
> ...значительно эффективней будет сложить идентификаторы не
> в массив, а в хэш, в котором хранить только checked, это
> избавит от необходимости крутить циклы и сильно упростит
> код.
Если честно, я не понял что имеется в виду..
На случай, если мы не допоняли друг друга,- @xMA содержит информацию только об одном пользователе и используется во время сохранения изменений настроек.
То бишь юзер передаёт в @xMA свои текущие check-настройки, а скрипт должен убрать/добавить его ID в соответствующие листы.

> И все-таки стоит завязывать с привычкой использовать @x[$i]
> вместо $x[$i], это лишние преобразования.
Ок, учту ;).
grep на chomp? 17.07.04 01:00  
Автор: Heller <Heller> Статус: Elderman
<"чистая" ссылка>
Скорее замены $_=~ s/\r|\n//g на chomp, а grep заменить на map..
Согласен с dl, но ещё на днях сам посмотрю по-подробнее
угу, работает %) 17.07.04 06:39  
Автор: !? <!?> Статус: Member
<"чистая" ссылка>
grep {$_=~ s/\r|\n//g;} (@xT);
заменил на
chomp (@xT);

Про chomp я совсем забыл что-то, часто использую комбинацию $_=~ s/\r|\n//g; вместо него..
chomp прекрасно работает и с массивами, обрабатывая каждый элемент 17.07.04 01:10  
Автор: dl <Dmitry Leonov>
<"чистая" ссылка>
Чего-то форму я теряю. Ошибаться часто стал. Надо пива меньше пить ;-( 18.07.04 00:51  
Автор: Heller <Heller> Статус: Elderman
<"чистая" ссылка>
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach