Perl condicional no sustituyendo en valor escalar
-
26-10-2019 - |
Pregunta
Por alguna razón, mis declaraciones IF no funcionan de la manera que quiero.
use strict;
use warnings;
my $syl;
my $name = "Chris";
print "Enter my name\n";
$syl = <>;
if ($syl eq $name)
{
print "You entered my name!\n";
}
else
{
print "That's not my name!\n";
}
Parece que debería funcionar a partir de todos los tutoriales que he leído, pero cuando escribo "Chris", ya sea capitalizado, minúsculas, con o sin comillas, siempre se evalúa en falso. Use las advertencias estrictas y use, no me digas que estoy haciendo algo malo, ¿qué, si algo, puedo hacer?
Solución
Necesitas usar chomp
. Eso elimina la nueva línea desde el final de la cadena de entrada que se colocó allí cuando el usuario escribió 'Enter'.
$syl = <>;
chomp $syl;
#.... etc...
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow