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

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


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

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

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

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

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

Номер выпуска:133
Дата выхода:07.10.2011, 05:30
Администратор рассылки:Коцюрбенко Алексей aka Жерар (Профессор)
Подписчиков / экспертов:127 / 27
Вопросов / ответов:3 / 5

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


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

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

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

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


Консультирует Muad Dib (Х Заблокирован):

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

#!/usr/bin/perl -w
print qq[Привет, как вас зовут?\n];
$name = ; chomp $name;
$answer="y";
while ($answer =~ "y") { # -->>> для сравнения строк == не используется!!!!
print qq[$name, угадай число от 0 до 5.\n];
$rand_num = int(rand 5);
$user_num = ; chomp $user_num;
if ($user_num != $rand_num) {
print qq[Ответ не верный.\n]
}
else {print qq[Поздравляю $name, вы угадали!!!];}
print "Хотите повторить? (y/n)\n";
$answer = ; chomp $answer;
}

Консультировал: Muad Dib (Х Заблокирован)
Дата отправки: 05.07.2006, 21:47
Рейтинг ответа:

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


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

Здравствуйте, Lperw!
ошибка у вас здесь :
while ($answer == "y") {

для сравнения строк используется операторы (в скобках их эквиваленты для числовых переменных)

eq ( == )
ne (!= )
lt (<)
gt (>)
le (<=)
ge (>=)

возможен вариант использования поиска по шаблону , как была написано в предидущем ответе ( кстати не правильно и синтаксически и логически )
примерно так :

while ($answer =~ /^y$/) {
или
while ($answer =~ m/^y$/) {

синтаксическая ошибка - не указан опреатор поиска - //( m//)
логическая ошибка - совпадение будет в любом слове в котором будет содежаться буква "y". Т.е. если пользователь введет любое сочетание букв в котором окажется и "y", то это будет считаться как утвердительный ответ.(ну это в двух словах). В указаном мной примере будет осуществляться поиск только единственной буквы "y" и ничего больше, т.е. при вводе только одной буквы у ответ будет утвердительным.

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

НЕ одобряю 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 одобряю!

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

Здравствуйте!
Подскажите пожалуйста прямую ссылку где можно скачать lite.pm для Unix сервера.
Спасибо.

Дата отправки: 01.01.2004, 00:01
Вопрос задал: Roman
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Chief (Практикант):

Здравствуйте, Roman!
Файл Lite.pm есть в нескольких модулях (поищите на http://seach.cpan.org )
У меня установлен пакет Mime::Lite, если Вам нужен такой же тогда качайте:
http://search.cpan.org/src/YVES/MIME-Lite-3.01/lib/MIME/Lite.pm
Если другой, тогда уточните в состав какого модуля он входит.

Консультировал: Chief (Практикант)
Дата отправки: 01.01.2004, 00:01
Рейтинг ответа:

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


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

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

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



В избранное