КАК сравнить на равенство (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); }
Так вроде работает. #!usr/bin/perl -w chomp($a = <STDIN>) ; $b='blabla'; if($a eq $b){ print "Ok\n"; sleep(5); } else{ print "Oops\n"; sleep(5); }
Знаю я эту ошибку. Тока я сам допер =) Когда ты набираешь в строке ввода blabla и жмешь Enter, то у тебя в переменную $a=<STDIN>; заносится "blabla/n" А это !eq "blabla" Поэтому после $a=<STDIN>; делай chomp($a); Так все будет работать. З.Ы. chomp() обрезает /n =)