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

start [/forum/topic.php?fid=23&tid=1462997]: |
0ms |
get settings: |
4ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
42ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 213ms |
| total: | 316ms |

| 0 / 0 |
