Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Программирование Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2      [все]
 Perl  [new]
Ekyen
Guest
Начал изучать перл по верблюду, блин мне С++ показался сверх простым(в изучении-понимании) по сравнению с перлом...так тяжко даётся...иногда просто каша в голове создаётся. Кто с перл знаком отпишитесь как это было у вас))
19 апр 10, 21:53    [8653464]     Ответить | Цитировать Сообщить модератору
 Re: Perl  [new]
White Owl
Member

Откуда:
Сообщений: 12418
Pure joy.
The most elegant and powerful language in existence.
19 апр 10, 22:29    [8653570]     Ответить | Цитировать Сообщить модератору
 Re: Perl  [new]
avb1003
Member

Откуда: Москва
Сообщений: 417
Ekyen
Начал изучать перл по верблюду, блин мне С++ показался сверх простым(в изучении-понимании) по сравнению с перлом...так тяжко даётся...иногда просто каша в голове создаётся. Кто с перл знаком отпишитесь как это было у вас))
Как это было? Сначала мне нужно было что-то поставить на машину с Unix, на которой велась разработка одной системы и которую я админил паралельно с участием в разработке. Не помню точно, по-моему это был пакет русификации X-ов с небольшим сценарием установки на каком-то, незнакомом мне тогда, языке. Поскольку все это было найдено где-то в И-нете не на сайте производителя операционной системы, то я посчитал неправильным запускать скрипт, не понимая, что он делает. Быстро выяснив, что этот язык называется Perl, я нашел поблизости обладателя казенной книжки - насколько я помню, это была "Programming Perl" на английском. Мне ее дали почитать на неделю. За неделю чтения по вечерам и в метро я изучил Perl достаточно, чтобы понять, что делал тот скрипт, и чтобы постепенно начать использовать Perl вместо awk или sed в тех ситуациях, когда нельзя обойтись однострочной командой. Нельзя сказать, что я прочитал за неделю всю эту книгу или, что я за неделю выучил Perl. Потом я читал разные книги( если есть сложности с "верблюдом" можно попробовать "ламу" : "Изучаем Perl" и затем "Perl:изучаем глубже") и расширял сферу использования. И этот процесс не закончился. У меня Perl был шестым или восьмым языком программирования - зависит от того как считать. Perl я изучал по мере необходимости для решения конкретных задач. Поэтому не было ни тяжести ни каши в голове. Может быть, даже наоборот. Во всяком случае я считаю, что даже минимальное знание Perl дает в руки мощный и полезный инструмент.
20 апр 10, 04:34    [8654145]     Ответить | Цитировать Сообщить модератору
 Re: Perl  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9372
Ekyen
Начал изучать перл по верблюду, блин мне С++ показался сверх простым(в изучении-понимании) по сравнению с перлом...так тяжко даётся...иногда просто каша в голове создаётся. Кто с перл знаком отпишитесь как это было у вас))


попробуй Ламу.
а вообще правильно тут сказали - жить захочешь не так раскорячишься.
Лично я изучал Perl за две недели по ламе верблюду и заданию реализовать за это время мааааленький виртуальный хостинг для одного крупного Internet-провайдера
20 апр 10, 08:15    [8654283]     Ответить | Цитировать Сообщить модератору
 Re: Perl  [new]
tchingiz
Member

Откуда:
Сообщений: 34534
Ekyen
Начал изучать перл по верблюду, блин мне С++ показался сверх простым(в изучении-понимании) по сравнению с перлом

иллюстрация к анекдоту купи козу.
Посмотрел 15 минут, послушал отзыва соседа про иф - зен наоборот, закрыл и больше никогда
не открывал.
лучше тикль уже если хочется "в руки мощный и полезный инструмент"

Сообщение было отредактировано: 20 апр 10, 08:21
20 апр 10, 08:19    [8654290]     Ответить | Цитировать Сообщить модератору
 Re: Perl  [new]
Шаровик
Member

Откуда: мать городов русских
Сообщений: 29
а я начал сразу с асинхронного программирования на FSM. тяжко достаточно, но зато иинтересно и какой ощутимый прирост в скорости по сравнению с похапе, к примеру
20 апр 10, 14:05    [8656784]     Ответить | Цитировать Сообщить модератору
 Re: Perl  [new]
sn1251
Guest
Я начал изучать просто по встроенной доке.
Оказалось достаточно знать английский и быть знакомым с юниксом.
В активе к моменту изучения был паскаль (delphi), shell, t-sql (sybase), плюс шапочное знакомство с C, сlipper, vb, asm, forth.
С++ я не изучал, но по сравнению с паскалем перл сверхсложным не показался.

Отдача от изучения пошла через пару месяцев. Использовал для импорта/экспорта данных в БД и автоматизации DBA-рутины, потом добавилось немного веба.

В 2001 году инет был тормозной, пришлось даже поиск по доке делать самому в .chm. Кстати удобно - до сих пор пользуюсь.

Потом прочел Camel и Best Practices. Ламу как-то пропустил.

Сказать уверенно "я знаю перл" смог примерно через 4-5 лет, хотя новое узнаю до сих пор.
21 апр 10, 07:22    [8660300]     Ответить | Цитировать Сообщить модератору
 Re: Perl  [new]
White Owl
Member

Откуда:
Сообщений: 12418
sn1251
Я начал изучать просто по встроенной доке.
Оказалось достаточно знать английский и быть знакомым с юниксом.
В активе к моменту изучения был паскаль (delphi), shell, t-sql (sybase), плюс шапочное знакомство с C, сlipper, vb, asm, forth.
С++ я не изучал, но по сравнению с паскалем перл сверхсложным не показался.
Хы, у меня к первой попытке Perl был почти такой-же список, разве что sql еще не было в багаже. Зато был свободный С и несколько других, ныне мертвых языков.
Первым Perl-проектом был веб-магазин, кстати до сих пор работающий, но подозреваю что от моего кода в нем не осталось ничего :)

sn1251
В 2001 году инет был тормозной, пришлось даже поиск по доке делать самому в .chm. Кстати удобно - до сих пор пользуюсь.
Я тебе открою страшную тайну, только никому ее не рассказывай: набираешь в консоли perldoc -f open и получаешь описание на функцию open и без всякого интернета!

sn1251
Потом прочел Camel и Best Practices. Ламу как-то пропустил.
Ничего не читал. Хватило perldoc и подглядывания в чужие исходники.

sn1251
Сказать уверенно "я знаю перл" смог примерно через 4-5 лет, хотя новое узнаю до сих пор.
Ну новое узнавать не мудрено, язык то развивается. Вон скоро шестая версия будет, вроде симпатичные вещи в ней обещают. Хотя мне до сих пор хватает четвертой.
21 апр 10, 19:07    [8666505]     Ответить | Цитировать Сообщить модератору
 Re: Perl  [new]
sn1251
Guest
White Owl
sn1251
В 2001 году инет был тормозной, пришлось даже поиск по доке делать самому в .chm. Кстати удобно - до сих пор пользуюсь.
Я тебе открою страшную тайну, только никому ее не рассказывай: набираешь в консоли perldoc -f open и получаешь описание на функцию open и без всякого интернета!
Я как бы в курсе :)
Мне не хватало полнотекстового локального поиска по установленным модулям.
Например я помню, что есть модуль разбора HTML, я ем уже пользовался, но не помню точного названия модуля. Вместо гадания на perldoc -r или рыскания по файловой системе или ожидания search.cpan.org вбиваю "html parse" - и сразу читаю доку по HTML::Parser или HTML::Tree.
Удобно если инет тормозной или трафик ограничен.
22 апр 10, 05:05    [8667784]     Ответить | Цитировать Сообщить модератору
 Re: Perl  [new]
Ekyen
Guest
И всё-же какой-же С\С++ красивый и логичный))) Чем больше познаю Perl тем больше начинаю любить свой мейнстрим(его я уже озвучил) )))
25 апр 10, 21:45    [8686584]     Ответить | Цитировать Сообщить модератору
 Re: Perl  [new]
spudei
Member

Откуда: парта возле окна
Сообщений: 78
Учил по ламерской книжке Пирса Клинтона.
Тогда не было своего компа.
Хотя, маны к перлу куда полезнее.
Возможно, можно и без книжек учить,
только доки с поставки и к модулям.
25 апр 10, 22:11    [8686656]     Ответить | Цитировать Сообщить модератору
 Re: Perl  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9372
Ekyen
И всё-же какой-же С\С++ красивый и логичный))) Чем больше познаю Perl тем больше начинаю любить свой мейнстрим(его я уже озвучил) )))


Уверяю тебя, как человек хорошо знающий C++ и Perl. Perl гораздо логичнее (то что логика местами безумна, а в других местах не из нашего мира - другой вопрос). Си логичнее Perl-а это факт, но и по предоставляемым возможностям они совершенно несопоставимы.
26 апр 10, 08:00    [8687234]     Ответить | Цитировать Сообщить модератору
 Re: Perl  [new]
Ekyen
Guest
Gluk (Kazan)
Ekyen
И всё-же какой-же С\С++ красивый и логичный))) Чем больше познаю Perl тем больше начинаю любить свой мейнстрим(его я уже озвучил) )))


Уверяю тебя, как человек хорошо знающий C++ и Perl. Perl гораздо логичнее (то что логика местами безумна, а в других местах не из нашего мира - другой вопрос). Си логичнее Perl-а это факт, но и по предоставляемым возможностям они совершенно несопоставимы.


Возможно я не верно высказался, С\С++ все-же ближе к машинному представлению фу-ия ну грубо говоря...там главное понять суть что-ли...в Perle слишко много всякой требушни...тут это так а тут это вот так...не ставь этот тут а ставь тут...в одном месте по одному работает в другом по другому и причём по логике ты не домыслишь это...это просто есть как правило...мне Perl очень напоминает обычные языки(Не зря Ларри - лингвист)...которые я терпеть немогу из-за кучи нелогичных правил и всяких исключений...
26 апр 10, 19:23    [8691809]     Ответить | Цитировать Сообщить модератору
 Re: Perl  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9372
Ekyen
Gluk (Kazan)
Ekyen
И всё-же какой-же С\С++ красивый и логичный))) Чем больше познаю Perl тем больше начинаю любить свой мейнстрим(его я уже озвучил) )))


Уверяю тебя, как человек хорошо знающий C++ и Perl. Perl гораздо логичнее (то что логика местами безумна, а в других местах не из нашего мира - другой вопрос). Си логичнее Perl-а это факт, но и по предоставляемым возможностям они совершенно несопоставимы.


Возможно я не верно высказался, С\С++ все-же ближе к машинному представлению фу-ия ну грубо говоря...там главное понять суть что-ли...в Perle слишко много всякой требушни...тут это так а тут это вот так...не ставь этот тут а ставь тут...в одном месте по одному работает в другом по другому и причём по логике ты не домыслишь это...это просто есть как правило...мне Perl очень напоминает обычные языки(Не зря Ларри - лингвист)...которые я терпеть немогу из-за кучи нелогичных правил и всяких исключений...


И снова повторюсь, правила весьма логичные (как впрочем и в естественных языках). Исключений из правил существенно меньше чем в естественных языках. Именно это позволяет не заучивать язык, а понимать его. C++ в этом отношении выглядит менее ... естественным

Не слушай слова, слушай музыку (c) Кош
26 апр 10, 20:46    [8692184]     Ответить | Цитировать Сообщить модератору
 Re: Perl  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9372
Не следует думать, что я призываю кого либо изучать или использовать Perl.
Что кому и как нравится - это его личное дело :)
26 апр 10, 20:47    [8692192]     Ответить | Цитировать Сообщить модератору
 Re: Perl  [new]
Ekyen
Guest
Gluk (Kazan)
Ekyen
Gluk (Kazan)
Ekyen
И всё-же какой-же С\С++ красивый и логичный))) Чем больше познаю Perl тем больше начинаю любить свой мейнстрим(его я уже озвучил) )))


Уверяю тебя, как человек хорошо знающий C++ и Perl. Perl гораздо логичнее (то что логика местами безумна, а в других местах не из нашего мира - другой вопрос). Си логичнее Perl-а это факт, но и по предоставляемым возможностям они совершенно несопоставимы.


Возможно я не верно высказался, С\С++ все-же ближе к машинному представлению фу-ия ну грубо говоря...там главное понять суть что-ли...в Perle слишко много всякой требушни...тут это так а тут это вот так...не ставь этот тут а ставь тут...в одном месте по одному работает в другом по другому и причём по логике ты не домыслишь это...это просто есть как правило...мне Perl очень напоминает обычные языки(Не зря Ларри - лингвист)...которые я терпеть немогу из-за кучи нелогичных правил и всяких исключений...


И снова повторюсь, правила весьма логичные (как впрочем и в естественных языках). Исключений из правил существенно меньше чем в естественных языках. Именно это позволяет не заучивать язык, а понимать его. C++ в этом отношении выглядит менее ... естественным

Не слушай слова, слушай музыку (c) Кош

В естественных языках правила как раз обычно не логичные...т.к. формируются они долгими историческими "перетераниями" и очень часто логичным их назвать трудно))
Конечно же исключений меньше...но их всё-же достаточно много)
Ну а поводу изучения и использования то тут я и так этим буду заниматься\занимаюсь)) Мне просто необходим такой инструмент...а ещё уже купил кемелбук.а он зараза не такой уж дешёвый))
26 апр 10, 20:55    [8692213]     Ответить | Цитировать Сообщить модератору
 Re: Perl  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9372
Ну коли уж он тебе необходим. Почему бы не попробывать его понять, а не зазубривать?
Что ты теряешь ???
27 апр 10, 07:15    [8693044]     Ответить | Цитировать Сообщить модератору
 Re: Perl  [new]
Ekyen
Guest
Gluk (Kazan)
Ну коли уж он тебе необходим. Почему бы не попробывать его понять, а не зазубривать?
Что ты теряешь ???


А кто говорит, что я его зазубриваю? Я его понимаю.
28 апр 10, 08:39    [8699735]     Ответить | Цитировать Сообщить модератору
 Re: Perl  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9372
Ekyen
Gluk (Kazan)
Ну коли уж он тебе необходим. Почему бы не попробывать его понять, а не зазубривать?
Что ты теряешь ???


А кто говорит, что я его зазубриваю? Я его понимаю.


Я рад за тебя :)
28 апр 10, 11:08    [8700591]     Ответить | Цитировать Сообщить модератору
 Re: Perl  [new]
Аnостроф
Member

Откуда:
Сообщений: 41
Кто знает, существует ли скриптовый язык, который работает быстрее Perl в задачах обработки текста?
29 апр 10, 10:30    [8706535]     Ответить | Цитировать Сообщить модератору
 Re: Perl  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9372
awk
29 апр 10, 14:56    [8708988]     Ответить | Цитировать Сообщить модератору
 Re: Perl  [new]
Аnостроф
Member

Откуда:
Сообщений: 41
а что-нибудь посовременней и под винду?
29 апр 10, 15:25    [8709253]     Ответить | Цитировать Сообщить модератору
 Re: Perl  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9372
Аnостроф
а что-нибудь посовременней и под винду?


ты уж выбери для себя что важнее:

1. быстрое
2. посовременее
3. под винду

Про awk могу сказать, что в силу некоторых архитектурных решений, на обработке текста он на порядки быстрее Perl-а. Кстати, под винду тоже е
29 апр 10, 15:43    [8709397]     Ответить | Цитировать Сообщить модератору
 Re: Perl  [new]
Аnостроф
Member

Откуда:
Сообщений: 41
Насчет "на порядки" - это ты загнул :)

по тестам разработчика компилируемой версии awk (а уж он свое детище не обидит) обходит интерпретируемый Perl в 1,5 - 2 раза.

http://awka.sourceforge.net/compare.html

Причем сравнения скорости регулярных выражений я так и не нашел.
29 апр 10, 15:47    [8709437]     Ответить | Цитировать Сообщить модератору
 Re: Perl  [new]
Аnостроф
Member

Откуда:
Сообщений: 41
можешь на awk составить программку, которая

прочитает файл 1.txt в своей директории
выполнит замену по шаблону s/\d+/123/g
и запишет результат в 2.txt
?

Хочу скорость сравнить :)
29 апр 10, 15:50    [8709471]     Ответить | Цитировать Сообщить модератору
 Re: Perl  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9372
Аnостроф
Насчет "на порядки" - это ты загнул :)

по тестам разработчика компилируемой версии awk (а уж он свое детище не обидит) обходит интерпретируемый Perl в 1,5 - 2 раза.

http://awka.sourceforge.net/compare.html

Причем сравнения скорости регулярных выражений я так и не нашел.


На пару порядков на специфичных задачах.
Загибать привычки не имею, мы ем логи как то раз парсили. Сначала Perl-ом a потом awk.

По поводу скорости регулярок (а это не единственное отличие, влияющее на производительность)
почитай про DFA vs NFA (Хотя оно больше для простоты так называется ибо любое регулярное выражение можно привести к DFA (через NFA), а те регулярные выражения, что в Perl, они и не регулярные выражения вовсе, а нечто гораздо более мощное и гораздо менее теоретически обоснованное, для простоты называемое малограмотными людьми NFA движком регулярных выражений).

Блин, целый абзац написал Оно мне надо ваще тебя уговаривать ???
Возьми сравни и удивись. Если функционала awk хватит для твоей задачи, Perl по быстродействию рядом с ним стоять не будет (и мало кто еще к этому быстродействию приблизится)
29 апр 10, 16:44    [8709964]     Ответить | Цитировать Сообщить модератору
 Re: Perl  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9372
Аnостроф
можешь на awk составить программку, которая

прочитает файл 1.txt в своей директории
выполнит замену по шаблону s/\d+/123/g
и запишет результат в 2.txt
?

Хочу скорость сравнить :)


sed еще посмотри
а програмки за тебя писать у меня времени нет, уж звиняй
могу книжку по авку подкинуть
29 апр 10, 16:46    [8709995]     Ответить | Цитировать Сообщить модератору
 Re: Perl  [new]
Аnостроф
Member

Откуда:
Сообщений: 41
Кто-нибудь напишите на awk это прогу. На минуту делов-то. Вот на Perl:

open(IN, "1.txt");
open(OUT, ">2.txt");
while(<IN>){
s/\d+/123/g;
print OUT
}

А потом сравним скорость. Самому интересно.
29 апр 10, 17:01    [8710160]     Ответить | Цитировать Сообщить модератору
 Re: Perl  [new]
avb1003
Member

Откуда: Москва
Сообщений: 417
Аnостроф,
Если очень интересно, то рекомундую посмотреть
Дж.Фридл. "Регулярные выражения. Библиотека программиста" СПб.:Питер, 2001. c.147.
В главе 6 "Регулярные выражние в конкретных программах" есть раздел посвященный Awk и в нем
подраздел "Различия между диалектами регулярных выражений awk". Их, диалектов, там приведено 6.
Глава 7 посвящена регулярным выражениям в Perl. В Perl скорость работы с регулярными выражениями сильно зависит от выбора этих выражений - можно легко написать "плохое". В книге объясняется,
что к чему и как писать "хорошие". А сам язык, как таковой, вряд ли "на порядки" медленней. У меня был опыт - вдруг стала иногда(но сильно) тормозить С-ная программа - компонент системы 7x24, уже была в эксплуатации где-то около года. По-видимиму, администратор или другой нехороший человек подменил динамические библиотеки. Проблема решилась заменой регулярного выражения - не помню детали, где-то "убрал" "звездочку."
29 апр 10, 19:11    [8711052]     Ответить | Цитировать Сообщить модератору
 Re: Perl  [new]
Аnостроф
Member

Откуда:
Сообщений: 41
Спасибо, я неплохо разбираюсь в регулярных выражениях, так как написал по ним диссертацию :)
Человек уверяет, что awk при обработке текста работает "на порядок быстрее Perl". Мне интересно, действительно ли это так.
29 апр 10, 19:19    [8711077]     Ответить | Цитировать Сообщить модератору
 Re: Perl  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9372
Аnостроф
Спасибо, я неплохо разбираюсь в регулярных выражениях, так как написал по ним диссертацию :)
Человек уверяет, что awk при обработке текста работает "на порядок быстрее Perl". Мне интересно, действительно ли это так.


Интересно - проверь (я для себя уже проверил).
За тебя это делать не собираюсь

Коль диссер написл, должен понимать почему в Perl-е регулярные выражения далеко не так быстры как могли быть (не будь в них многих вкусностей)
30 апр 10, 08:44    [8712341]     Ответить | Цитировать Сообщить модератору
 Re: Perl  [new]
Аnостроф
Member

Откуда:
Сообщений: 41
А, так AWK используются DFA :( Ни обратных ссылок, ни утверждений. Для моих задач совсем не подходит, т.к. юзаю по-полной все возможности NFA и даже пишу по вечерам свою версию PCRE :) Работать движок будет помедленней, чем PCRE, но там будет куча вкусностей, облегчающих написания рег. выражений. Например, можно будет напрямую прописывать в шаблоне числа - скажем, "больше 40, но меньше 270".
30 апр 10, 10:00    [8712688]     Ответить | Цитировать Сообщить модератору
 Re: Perl  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9372
Аnостроф
А, так AWK используются DFA :( Ни обратных ссылок, ни утверждений. Для моих задач совсем не подходит, т.к. юзаю по-полной все возможности NFA и даже пишу по вечерам свою версию PCRE :) Работать движок будет помедленней, чем PCRE, но там будет куча вкусностей, облегчающих написания рег. выражений. Например, можно будет напрямую прописывать в шаблоне числа - скажем, "больше 40, но меньше 270".


Опять же, стоит определиться, что важнее: быстро или вкусности
Нам вкусностей хватало, а вот быстро было очень актуально
30 апр 10, 10:24    [8712853]     Ответить | Цитировать Сообщить модератору
 Re: Perl  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9372
Аnостроф
Например, можно будет напрямую прописывать в шаблоне числа - скажем, "больше 40, но меньше 270".


Гмм. В Perl-е можно довычислять выражение по ходу его выполнения. Мозг при этом правда выкипает да и вкусность какая-то шибко инопланетная, но ты уверен, что не изобретаешь велосипед ?
30 апр 10, 10:26    [8712875]     Ответить | Цитировать Сообщить модератору
 Re: Perl  [new]
Аnостроф
Member

Откуда:
Сообщений: 41
Gluk (Kazan), уверен. Сейчас, чтобы определять и сравнивать числа (не одиночные символы-цифры, а именно числа) внутри регулярных выражений приходится такой код наворачивать, что написание каждой такой регулярки превращаются в нетривиальную задачку даже для неслабых умов. А, между тем, дело это очень даже востребовано.
Еще одна фишка - оптимизация работы с пакетами регулярных выражений. Я обнаружил что длинное регулярное NFA-выражение с кучей условий, альтернациями, классами символов и т.п. работает гораздо медленней, чем аналогичный по действию пакет коротких регулярных выражений. В некоторых ситуациях разница доходит до 10 - 15 раз! Чем длиннее и сложнее регулярное выражение, тем эффективней с ним работает мой движок по сравнению с PCRE. Однако пока я погряз в отладке и оптимизации - даже не знаю, когда будет полноценная бета, которую будет не стыдно людям показать.
30 апр 10, 11:09    [8713348]     Ответить | Цитировать Сообщить модератору
 Re: Perl  [new]
Аnостроф
Member

Откуда:
Сообщений: 41
На коротких шаблонах PCRE пока быстрее на 20-30 % за счет того, что у меня движок более высокоуровневый.
30 апр 10, 11:15    [8713394]     Ответить | Цитировать Сообщить модератору
 Re: Perl  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9372
Аnостроф
На коротких шаблонах PCRE пока быстрее на 20-30 % за счет того, что у меня движок более высокоуровневый.


Наверное стоит посмотреть на движок TCL по поводу оптимизаций.
Не впоне понимаю как будет выглядеть регулярка для чисел. Примерчик можно?
30 апр 10, 11:29    [8713550]     Ответить | Цитировать Сообщить модератору
 Re: Perl  [new]
Аnостроф
Member

Откуда:
Сообщений: 41
TCL использует комбинированный движок NFA-DFA, но скорость не впечатлила.
30 апр 10, 11:49    [8713757]     Ответить | Цитировать Сообщить модератору
 Re: Perl  [new]
Аnостроф
Member

Откуда:
Сообщений: 41
Пример: удалить из строки числа, которые больше 23

s/ (\d:>23) / /g

Пример: найти в строке числа, которые больше переменной $a на 100, но меньше переменной $b

/(\d:>$a+1, <$b)/g
30 апр 10, 11:55    [8713820]     Ответить | Цитировать Сообщить модератору
 Re: Perl  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9372
Аnостроф
Пример: удалить из строки числа, которые больше 23

s/ (\d:>23) / /g

Пример: найти в строке числа, которые больше переменной $a на 100, но меньше переменной $b

/(\d:>$a+1, <$b)/g


надо вводить какие то скобки наподобие фигурных для квантификаторов.
Иначе каша получится и будет совсем не PCRE (особенно в последнем примере)
Кстати, числа это все таки \d+, а не \d
30 апр 10, 12:11    [8713978]     Ответить | Цитировать Сообщить модератору
 Re: Perl  [new]
Аnостроф
Member

Откуда:
Сообщений: 41
Пакеты на данный момент записываются в стиле Perl:

/regex1/ &&
/regex2/ &&
!/regex3/ &&
!/regex4/

т.е. если в строке ЕСТЬ regex1 и regex2, НО НЕТ regex3 и regex4, то пакет нашел совпадение. С помощью таких пакетов можно очень быстро писать сложнейшие условия для отлова строк, причем пакет будет работать в 10 - 15 раз быстрее, чем одно длинное NFA-регулярное выражение с использованием утверждений и прочих расширенных конструкций. Самое сложное - правильно реализовать возвращение найденных в пакете захваченных переменных.
30 апр 10, 12:12    [8713990]     Ответить | Цитировать Сообщить модератору
 Re: Perl  [new]
Аnостроф
Member

Откуда:
Сообщений: 41
"Надо вводить какие то скобки наподобие фигурных для квантификаторов" - это был самый первый вариант, который попробовал. Но с ним есть определенные трудности.

"Иначе каша получится и будет совсем не PCRE". При разбиении регулярных выражений на пакеты они выглядят очень понятно и легко записываются. Ладно, что-то я совсем выбился из рабочей колеи :)
30 апр 10, 12:17    [8714045]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Perl  [new]
volodin661
Member

Откуда: Внутренняя Монголия
Сообщений: 445
Аnостроф
Пример: удалить из строки числа, которые больше 23

s/ (\d:>23) / /g

Пример: найти в строке числа, которые больше переменной $a на 100, но меньше переменной $b

/(\d:>$a+1, <$b)/g




#удалить из строки числа, которые больше 23
s/ (\d+) / $1 if $1 <= 23 /ex

#найти в строке числа, которые больше переменной $a на 100, но меньше переменной $b
grep { $_-100 > $a and $_ < $b }  m/ ( \d+ ) /gx


ой-ой, закипели мозги.
29 ноя 13, 07:10    [15209465]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Perl  [new]
volodin661
Member

Откуда: Внутренняя Монголия
Сообщений: 445
Аnостроф

даже пишу по вечерам свою версию PCRE :) Работать движок будет помедленней, чем PCRE, но там будет куча вкусностей, облегчающих написания рег. выражений. Например, можно будет напрямую прописывать в шаблоне числа - скажем, "больше 40, но меньше 270".

Пример: удалить из строки числа, которые больше 23

s/ (\d:>23) / /g




Хочу отметить, что Larry Wall таки прислушался к идеям Апострофа :-) и реализовал их в своём новом regex engine в языке Perl6

удалить из строки числа, которые больше 23 :

s:g /(\d+) { $0 > 23 or next }//
25 сен 19, 18:18    [21979198]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2      [все]
Все форумы / Программирование Ответить