2012-03-12 12 views

Respuesta

25

Ya casi ha terminado.

print "Enter a word to look up: "; 
my $userword = <STDIN>; # I moved chomp to a new line to make it more readable 
chomp $userword; # Get rid of newline character at the end 
exit 0 if ($userword eq ""); # If empty string, exit. 
+0

Excelente respuesta. ¿Podría explicarme qué significa 0 y eq? Ahora que eq significa igual pero no estoy seguro del 0 – NewLearner

+1

[Ese es solo el estado de salida] (http://perldoc.perl.org/functions/exit.html) – resmon6

+0

Acabo de probar esto (basado en esta respuesta), pero estoy descubriendo que la impresión no siempre se ejecuta antes de la lectura de STDIN (por lo que en otras palabras, el programa parece que se detiene sin una razón aparente) - ¿hay alguna forma de evitarlo? – John

0

La salida del archivo está almacenada en el búfer por defecto. Como el aviso es muy corto, todavía está en el búfer de salida. Puede deshabilitar el almacenamiento en búfer en STDOUT agregando esta línea de código antes de imprimir ...

select((select(STDOUT), $|=1)[0]); 
Cuestiones relacionadas