Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Сравнение входных данных <STDIN> с $ через оператор eq (https://forum.antichat.xyz/showthread.php?t=17939)

VackuM 19.04.2006 23:13

Сравнение входных данных <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). :mad:

#!usr/bin/perl -w

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

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

Go0o$E 19.04.2006 23:53

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

xShreKx 22.04.2006 13:43

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


Время: 06:02