Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
19.02.2014, 03:23
|
|||
|---|---|---|---|
[Perl] 'just' while $d =~ .... |
|||
|
#18+
Ковыряюсь в чужом исходнике и напоролся на код: Код: php 1. 2. 3. 4. 5. Регулярное выражение я понимаю. А вот что такое 'just' while перед ним я не понимаю. И в документации найти не могу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.02.2014, 03:40
|
|||
|---|---|---|---|
[Perl] 'just' while $d =~ .... |
|||
|
#18+
Так... кажется дошло. Это чудо разворачивается в $_ = 'just' while $d =~ s/.../.../; Регулярка вернет true только на первом проходе (текст то в переменной меняется). Так что и зацикливания не происходит. То есть 'just' while в данном случае это такой замаскированный NOP... Теперь бы еще понять нафига он тут? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.02.2014, 13:52
|
|||
|---|---|---|---|
[Perl] 'just' while $d =~ .... |
|||
|
#18+
White Owl, А это походу левый рефакторинг... Идея была такая: Код: php 1. 123,456,789 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.02.2014, 20:47
|
|||
|---|---|---|---|
[Perl] 'just' while $d =~ .... |
|||
|
#18+
Не понял идею. Рефакторинг чего? Обе эти строки выдадут одинаковый результат: perl -e 'my $d = "123.456.789"; "just" while $d =~ s/(.*)\.(\d\d\d)/$1,$2/; print "$d\n"' perl -e 'my $d = "123.456.789"; $d =~ s/(.*)\.(\d\d\d)/$1,$2/; print "$d\n"' Я не вижу никакого смысла в использовании этой странной конструкции. Но в коде, рефакторингом которого я сейчас занимаюсь, подобные пакости встречаются практически каждый раз когда делается обработка переменной регекспом. Вот я и начал сомневаться, может там есть какой-то сакральный смысл которого я не знаю? Может это остатки какого-то древнего диалекта в котором регекспы сами по себе не могли стоять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.02.2014, 20:55
|
|||
|---|---|---|---|
[Perl] 'just' while $d =~ .... |
|||
|
#18+
Ой, прошу прощения. Понял. Просто у меня тут сейчас везде "одноразовые" шаблоны, глаз замылился и я сначала не обратил внимание что в твоем примере шаблон "многоразовый". Да, тогда это действительно похоже на правду. Большое спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.02.2014, 20:57
|
|||
|---|---|---|---|
[Perl] 'just' while $d =~ .... |
|||
|
#18+
Вот такая пара строк выдаст одинаковый результат: perl -e 'my $d = "123.456.789"; "just" while $d =~ s/(.*)\.(\d\d\d)/$1,$2/; print "$d\n"' perl -e 'my $d = "123.456.789"; $d =~ s/(.*?)\.(\d\d\d)/$1,$2/g; print "$d\n"' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.02.2014, 14:16
|
|||
|---|---|---|---|
|
|||
[Perl] 'just' while $d =~ .... |
|||
|
#18+
White Owl, конструкция вида Код: php 1. распространена достаточно широко и в помещении регулярного выражения под оператор while вполне определённый смысл есть*, но не в данном случае. в данном случае его нет. здесь просматривается коряво реализованное желание превратить число с плав. точкой в строку, где оно предстанет в виде с разделёнными запятыми тысячными разрядами. Код: coco 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=23&mobile=1&tid=1462997]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
48ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 362ms |

| 0 / 0 |
