Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Программирование на языке Perl


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты по данной тематике

Коцюрбенко Алексей aka Жерар
Статус: Советник
Рейтинг: 4346
∙ повысить рейтинг »
Абаянцев Юрий Леонидович aka Ayl
Статус: Профессионал
Рейтинг: 1952
∙ повысить рейтинг »
Хватов Сергей
Статус: Академик
Рейтинг: 608
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Программирование / Perl (Перл)

Номер выпуска:139
Дата выхода:03.07.2012, 08:00
Администратор рассылки:Коцюрбенко Алексей aka Жерар (Советник)
Подписчиков / экспертов:55 / 15
Вопросов / ответов:3 / 7

Консультация # 35436: Здравствуйте уважаемые экперты! Подскажите плиз как с помощью регулярного выражения (в нотации perl) задать условие "И". Условие "ИЛИ" задается легко - |. Необходимо выполнять некоторые действия с текстом, если в нем присутствуют две или более заранее заданные и отличные друг от друга последовател...


Консультация # 78803: Приветствую уважаемые коллеги! Не подскажите где можно загрузить редактор для Perl, желательно Free? Ну, например похожий на редактор PHP Expert Editor. Прямые ссылки на софт приветствуются. Заранее всем большое спасибо!...
Консультация # 51911: Здравствуйте эксперты, у меня следующее: Программа должна считывать несколько слов в массив, затем выдать количесво элементов, и затем, распечатать все введенные элементы... для заполнения массива я использую оператор <STDIN>, это у меня получается, так же получается вывести все элементы массива на экран... но вот подсчитать колличест...

Консультация # 35436:

Здравствуйте уважаемые экперты!
Подскажите плиз как с помощью
регулярного выражения (в нотации perl) задать условие "И".
Условие "ИЛИ" задается легко - |.
Необходимо выполнять некоторые действия
с текстом, если в нем присутствуют две или более
заранее заданные и отличные друг от друга
последовательности символов
(символы любые из 256) одновременно.
Как записать такое рег-выражение?
Спасибо за ответы.

Дата отправки: 14.02.2006, 20:38
Вопрос задал: kool (Практикант)
Всего ответов: 2
Страница онлайн-консультации »


Консультирует Muad Dib:

Здравствуйте, 1556

Используйте скобки для разграничения последовательностей символов. В скобках можно задавать варианты каждой последовательности с помощью | и не нада никаких дополнительных символов для обозначения И - оно подразумевается по-умолчанию.

Консультировал: Muad Dib
Дата отправки: 14.02.2006, 22:29
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Лучников Юрий Владимирович:

Здравствуйте, 1556!
А что вам мешает записать условие как ($str=~m/[a-f]+/) && ($str=~m/[A-F]+/).
Тем самым все выражение вернет истину только в том случае, если в $str содержится любой символ из диапазона a-f И A-F.

Успехов!

Консультировал: Лучников Юрий Владимирович
Дата отправки: 14.02.2006, 22:47
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 78803:

Приветствую уважаемые коллеги!

Не подскажите где можно загрузить редактор для Perl, желательно Free? Ну, например похожий на редактор PHP Expert Editor. Прямые ссылки на софт приветствуются.

Заранее всем большое спасибо!

Дата отправки: 18.03.2007, 12:30
Вопрос задал: Web-Extrime (Специалист)
Всего ответов: 2
Страница онлайн-консультации »


Консультирует dianacode:

Доброе время суток, Web-Extrime

for Windows

проект Komodo - http://activestate.com/products/komodo_edit/ - предыдущие версии были сродни танку, застрявшему в болоте, если вас интересует урезанный функционал и неторопливость (комод написан на движке mozilla, к скорости браузера это никак не относится, вот в редакторах это использовать не надо. вот и всё)
в свободной версии убили удобный регексп-тестер и ещё много чего интересного, но скорости сильно не прибавилось

проект eclipse - http://www.eclipse.org/ для того, чтобы красиво работать с perl нужно установить http://e-p-i-c.sourceforge.net/
можно, но по скорости уступает следующему решению, правда, оно платное

то время, за которое перепробовала тучи редакторов - в итоге нашла для себя именно то, что нужно - скорость, нетребовательность к ресурсам, сумасшедшую поддержку в редактировании кода - UltraEdit ! uedit умеет быстро и красиво читать исходнички от 4 гиг ростом !!! без проблем, работа с кодом там и описывать не стоит - нужно один раз попробовать, после всех вышеперечисленных проектов

http://www.ultraedit.com/index.php?name=Content&pid=150

и ещё, хочу тут упомянуть, - у меня есть эти 100 долларов, за которые лицензия после некоторого времени триального использования и была приобретена

собственно, я могу себе позволить приобретать некоторые программное обеспечение, потому как уважаю своё время и код, который пишу, ну и получаю, соответственно, определённый доход, за то, что делаю

с уважением, удачи

Консультировал: dianacode
Дата отправки: 18.03.2007, 15:15
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Muad Dib:

Здравствуйте, Web-Extrime!

Возможно не совсем традиционные для win-программирования редакторы, но все-таки обращу ваше внимание:

http://www.vim.org - vi iMproved - vi - в свою очередь один из самых старых, но до сих пор один из самых популярных редакторов в UNIX-мире, и вообще среди программистов. Редактор достаточно интересный, необычный, хотя бы из-за нескольких режимов редактирования. Но, если разобраться, то больше никогда не захочется редактировать код/текст в блокноте. Для perl кроме подсвекти синтаксиса есть еще плагин с очень богатой функциональностью: http://www.vim.org/scripts/script.php?script_id=556

еще один популярный редактор из UNIX-мира: http://ru.wikipedia.org/wiki/Emacs существует в двух популярных ипостасях GNU Emacs и X Emacs. Тоже очень мощный программерский инструмент, для perl можно использовать(вроде) cperl-mode || perl-mode.

стоит познакомится с обоими редакторами. мне больше пока нравится vim(еще и потому что его можно найти практически на всех NIX-серверах) - использую его для всего(в т.ч. и для написания этого ответа) :-)

Консультировал: Muad Dib
Дата отправки: 18.03.2007, 17:09
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 51911:

Здравствуйте эксперты, у меня следующее:
Программа должна считывать несколько слов в массив, затем выдать количесво элементов, и затем, распечатать все введенные элементы...
для заполнения массива я использую оператор <STDIN>, это у меня получается, так же получается вывести все элементы массива на экран... но вот подсчитать колличество слов в массиве не получается, насколько мне известно это делается путем присваевания скалярной переменной всего массива (то бишь массив в скалярном контексте), но вот у меня, после того как я введу 5 слов, пишет что в массиве только 2, почему??? (заканчиваю ввод слов путем нажатия ctr+z, т.е. конец строки) листинг примерной программки в приложениии.
Всем спасибо за внимание.

Дата отправки: 12.08.2006, 02:22
Вопрос задал: Lperw
Всего ответов: 3
Страница онлайн-консультации »


Консультирует dianacode:

Доброе время суток, Lperw

эта проблема - не проблема - подскажите перл как обращаться с переменной - ответьте ему что это скаляр - а именно :

$q=@words+0;

или

$q=$#words;

вот и всё

с уважанием, удачи

Консультировал: dianacode
Дата отправки: 12.08.2006, 02:40
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует -OC- (Специалист):

Здравствуйте, Lperw!
начнем с простого - с размера массива.
вы делаете правильно , т.е. присвоение скаляру массива всегда дает его размер.
но более "красивым" считается использование функции scalar.
$q = scalar(@words);
Но ошибка у вас скорее всего не в получении размера массива, а в его формировании.
А почему вы не пользуетесь отладкой? Я не говорю об встроенном отладчике, но хотя бы контролировать значения вводимые с STDIN , а тем более в массив.После ввода просто выведите построчно ваш массив( т.е. каждый элемент массива - новая строка) и вы поймете почему у вас размер не совпадает с требуемым.
ИМХО ошибка у вас именно вот здесь - @words=;. Так не делается. Вы должны четко знать каким образом будет осужествлятьсяя ввод и что будет являться элементом массива т.е. при вводе слов что будет разделять их на элементы массива пробелы или перевод строки.
Если каждое слово будет вводиться с новой строки, то для этого лучший вариант такой(см. приложение). Если же в каждой строке будет по нескольку слов и их так же надо разбить на элементы, то приведенный код нужно только немного модифицировать с учетом разбиения строки на подэлементы , используя split с соответствующим разделителем вместо $_ в push. См. вариант 2 в приложении . Этот вариант более универсален и его можно модифицировать под свои нужды. Он работает когда каждый элемент массива- новая строка и отделенные друг от друга пробелом слова в строке. Т.е. при таком вводе :
hfwfhoei
fhdslhf hfskdjhfsd sedfuefj
hfsih dihfsdi
это будет 6 элементов.

надеюсь что об"яснил понятно. Извиняюсь за некоторую сумбурность.

Приложение:

Консультировал: -OC- (Специалист)
Дата отправки: 12.08.2006, 14:09
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Хватов Сергей (Академик):

Здравствуйте, Lperw!

words=<STDIN>;
считывает весь файл, разбивая его на строки. Так что вы считаете не слова, а строки.
Попробуйте так:

Приложение:

Консультировал: Хватов Сергей (Академик)
Дата отправки: 14.08.2006, 10:21
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка  |  восстановить логин/пароль

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!



В избранное