forum.bitel.ru http://forum.bitel.ru/ |
|
Помогите понять manad http://forum.bitel.ru/viewtopic.php?f=7&t=6564 |
Страница 1 из 1 |
Автор: | ivasian [ 15 мар 2012, 10:24 ] |
Заголовок сообщения: | Помогите понять manad |
Разбираю код скрипта, перл знаю только на уровне простых скриптов поэтому такая конструкция мне взрывает мозг: Код: foreach my $i ( keys %N ) { $CLUSERULEN{$kod} .= exists $CLUSERULEN{$kod} && $CLUSERULEN{$kod} ne "" ? " ".$N{$i} : $N{$i}; } Особенно интересует то что внутри цикла, Код: $CLUSERULEN{$kod} .= Это я так понимаю делает конкантенацию строки Код: $CLUSERULEN{$kod} со строкой с правой стороны. Но с правой стороны логические операторы ). Объясните кто нить плизИ еще, вот это код по моему выполнится всего раз Код: my @N = split( / /, $CLUSERULEN{$kod} ); foreach my $i ( @N ) { $err = `$ipfw delete $i`; delete $USERULEN{$i}; } Цикл тут это какая то задумка которую я не понял или он действительно не нужен и можно так ? Код: my @N = split( / /, $CLUSERULEN{$kod} ); $err = `$ipfw delete $N[0]`; delete $USERULEN{$N[0]}; } Еще хотелось бы знать как посмотреть реализацию manad на стороне биллинга для 5.2? |
Автор: | barguzin2 [ 17 мар 2012, 15:41 ] |
Заголовок сообщения: | Re: Помогите понять manad |
1) a.=b эквивалентно а=a.b; ( точка - конкатенация. аналогично есть операции a+=b и др.) 2) внутри цикла с правой стороны присваивания аналог условного оператора if-else. Если рассматривать только правую часть, то как пример будет max = a>b ? a : b; Думаю смысл сразу понятен. Ну а в контексте скрипта к $CLUSERULEN{$kod} добавляем (приклеиваем) $N{$i} с пробелом впереди если $CLUSERULEN{$kod} не пустой или просто $N{$i} если он пустой (приклеивается первый элемент). 3) my @N = split( / /, $CLUSERULEN{$kod} ); - разбиваем $CLUSERULEN{$kod} на элементы, которые помещаются в массив @N. В качестве разделителя - пробел (шаблон разделителя / /). Ну а дальше цикл перебирает ВСЕ элементы массива. |
Автор: | ivasian [ 17 мар 2012, 19:26 ] |
Заголовок сообщения: | Re: Помогите понять manad |
Спасибо за инфу, реализацию Manad нашел на вики, по ней вопросов нет. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |