HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

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

Репутация: 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
Провел на форуме:
6127131

Репутация: 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
Провел на форуме:
62343

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

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





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


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




ANTICHAT.XYZ