![]() |
Сравнение входных данных <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); } |
Так вроде работает.
#!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 =) |
| Время: 06:02 |