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

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


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

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

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

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

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

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

Консультация # 51256: Доброго врение суток... посмотрите пожалуйста код и скажите где ошибка. Задача: программа должна вывести "ошибка ввода" если пользователь ввел не "да" и не "нет", а если ввел "да" ии "нет", программа должна вывести то что ввел пользователь. У меня почемуто в любом случае выводится "ошиб...


Консультация # 37078: Здрысть, уважаемые эксперты! Пишу GCI-скрипт на perl. Внутри скрипта есть две строковых переменных $str1 и $str2. Одна из них читается из файла, другая от юзера. Слова вводятся на английском без пробелов и спецсимволов. В обоих переменных слово одинаковое, но, когда пишу if($str1 ne $str2) {...}, то этот ифец срабатывает, говоря о том, что ...
Консультация # 71939: Никак не пойму, как обрабатывать символы в строке. Предположим есть: $str = "hello, perl"; Как в цикле пробежатся по всем символам и сделать с ними что-нибудь ? Я естествено попробовал тыкнуть пальцем в небо и написал так: $str[2] - естественно perl лишь ответил молчанием, не Си все таки. Конкретно решаю такую задачу. ...

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

Доброго врение суток...
посмотрите пожалуйста код и скажите где ошибка.
Задача: программа должна вывести "ошибка ввода" если пользователь ввел не "да" и не "нет", а если ввел "да" ии "нет", программа должна вывести то что ввел пользователь. У меня почемуто в любом случае выводится "ошибка ввода"
Всем спасибо...

Дата отправки: 05.08.2006, 18:44
Вопрос задал: Lperw
Всего ответов: 2
Страница онлайн-консультации »


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

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

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

1) пробуем подключать locale

ну и искать всёж регуляркой - не надеятся на авось -

2) =~/

3) в конце-концов самый лучший вариант - НЕ ЗАПАРИВАТЬСЯ и не искать таких вариантов - используйте EN набор символов и будет вам щастье )

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

Приложение:

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

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


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

Здравствуйте, Lperw!
Ошибка впринципе в том что вы очень уж закрутили условием cмотрим что у вас:
if( $ans ne "yes" or $ans ne "no"){print "mistake;}
Если $ans yes - то будет истинным второе значение и or вернет 1. Если $ans no - первое, опять таки 1, если будет вообще что-то левое, то опять таки будет 1 - т.е. при любом раскладе будет печатать mistake. Условие лучше привести к виду:
if($ans eq yes or $ans eq no){print "your string $ans"} ... ну и так далее, или свести к регулярному выражнию как вам посоветовали раньше:

#!/usr/bin/perl -w
print qq( \n);
$ans = ;
if ($ans=~m/^(да|нет)$/ ){
print "your string $ans \n";
}else{
print "mistake \n";
}

По поводу use POSIX и use locale - не знаю - у меня все прекрасно и без них работает :).


Консультировал: Muad Dib
Дата отправки: 06.08.2006, 04:15
Рейтинг ответа:

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

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

Здрысть, уважаемые эксперты!
Пишу GCI-скрипт на perl. Внутри скрипта есть две строковых переменных $str1 и $str2. Одна из них читается из файла, другая от юзера. Слова вводятся на английском без пробелов и спецсимволов. В обоих переменных слово одинаковое, но, когда пишу
if($str1 ne $str2) {...}, то этот ифец срабатывает, говоря о том, что строки разные, хотя они одинаковые. В чём гвоздь? Как лечить?

Дата отправки: 09.03.2006, 12:09
Вопрос задал: Дрищев Василий
Всего ответов: 2
Страница онлайн-консультации »


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

Здравствуйте, Дрищев Василий!

А гвоздь в том, что текстовый файл имеет вид:
string1\n
string2\n
..

То есть вы читаете файл со спец-символами, а строка, введенная вручную, не имеет их...

Как лечить? Отфильтруйте символы конца строки функцией chomp().
Пример:
chomp $str1, $str2;
if($str1 ne $str2) {...},


Успехов!

Приложение:

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

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


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

Здравствуйте, Дрищев Василий!
обычно if("$str1" ne "$str2") {...}, а разница скорее всего в спецсимволах.

Консультировал: Muad Dib
Дата отправки: 09.03.2006, 14:21
Рейтинг ответа:

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

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

Никак не пойму, как обрабатывать символы в строке.
Предположим есть:
$str = "hello, perl";
Как в цикле пробежатся по всем символам и сделать с ними что-нибудь ?
Я естествено попробовал тыкнуть пальцем в небо и написал так: $str[2] - естественно perl лишь ответил молчанием, не Си все таки.
Конкретно решаю такую задачу. Есть текст, в нем данные разбиты в группы по 3 байта, первые два байты мне нужно обработать особым образом, 3-ий вообще не нужен.
Собственно это все мелочи, которые решаются ручками в течении нескольких минут, я не пойму как обращаться к отдельным символам в строке.

Дата отправки: 21.01.2007, 16:08
Вопрос задал: Torsten
Всего ответов: 3
Страница онлайн-консультации »


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

Здравствуйте, Torsten!
Обрабатывать строку посимвольно можно обработав ее ф-цией split с пустым шаблоном. Т.е. @str = split(//,$str); вернет вам список из отдельных символов строки, а дальше уже обрабатывайте список как вам нужно. Но это не самый хороший вариант решения задачи.
Если приведете пример текста (хотя бы одну строку) который надо обработать, то тогда можно найти более "красивый" вариант решения.

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

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


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

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

Помимо уже упомянутого в ответах split можно использовать unpack (и pack для обратной операции) Примерно как в приложении, хотя с описанием формата я могу и ошибиться - нечасто его использую

Ещё можно использовать s//

Приложение:

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

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


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

Здравствуйте, Torsten!
Одна из самых сильных сторон Perl это регулярные выражения
Смотри приложение и поставляемую с перлом справку - там всё разжовано

Приложение:

Консультировал: Duke
Дата отправки: 22.01.2007, 08:38
Рейтинг ответа:

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


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

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

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


© 2001-2012, Портал RFPRO.RU, Россия
Авторское право: ООО "Мастер-Эксперт Про"
Калашников О.А. | Гладенюк А.Г.
Версия системы: 2011.6.36 от 26.01.2012

В избранное