HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Сравнение входных данных <STDIN> с $ через оператор eq
  #1  
Старый 19.04.2006, 23:13
VackuM
Новичок
Регистрация: 04.04.2006
Сообщений: 22
С нами: 10579417

Репутация: 9
По умолчанию Сравнение входных данных <STDIN> с $ через оператор eq

КАК сравнить на равенство (eq) входные данные <STDIN>(текст) со скалярной величиной, лично у меня не выходит.

Если писать так, то результат ожидаемый.

#!usr/bin/perl -w
$a="blabla";
$b="blabla";

if($a eq $b){
print "Ok\n";
sleep(5);
}
else{
print "Oops\n";
sleep(5);
}

А если попробовать с вводом с клавиатуры то увы!!! (При вводе с команд. строки blabla пишет Oops).

#!usr/bin/perl -w

$a=<STDIN>;
$b="blabla";

if($a eq $b){
print "Ok\n";
sleep(5);
}
else{
print "Oops\n";
sleep(5);
}
 
Ответить с цитированием

  #2  
Старый 19.04.2006, 23:53
Go0o$E
Members of Antichat - Level 5
Регистрация: 27.01.2006
Сообщений: 258
С нами: 10676486

Репутация: 774
По умолчанию

Так вроде работает.
#!usr/bin/perl -w
chomp($a = <STDIN>) ;
$b='blabla';
if($a eq $b){
print "Ok\n";
sleep(5);
}
else{
print "Oops\n";
sleep(5);
}
__________________

Завтра будет.Лучше.
 
Ответить с цитированием

  #3  
Старый 22.04.2006, 13:43
xShreKx
Новичок
Регистрация: 02.07.2005
Сообщений: 13
С нами: 10977352

Репутация: 20
По умолчанию

Знаю я эту ошибку.
Тока я сам допер =)
Когда ты набираешь в строке ввода blabla и жмешь Enter, то у тебя в переменную $a=<STDIN>; заносится "blabla/n" А это !eq "blabla"
Поэтому после $a=<STDIN>; делай chomp($a);
Так все будет работать.
З.Ы. chomp() обрезает /n =)
 
Ответить с цитированием
Ответ



Предыдущая тема Следующая тема

Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.