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?

¿Fue útil?

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
scroll top