2 votes

pourquoi la commande print s'exécute-t-elle après la STDIN bien qu'elle soit appelée avant ?

J'ai un programme simple

use strict;
use warnings;

print "Enter a number:\n";
my $number1 = <STDIN>;
chomp $number1;
print "Enter another number:\n";
my $number2 = <STDIN>;
chomp $number2;
if ( $number2 == 0 ) {
    print "error: cnt divide by zero\n";
}
elsif ( ( $number1 == 0 ) or ( $number2 == 1 )) {
    print "$number1\n";
}
else {
    my $div = $number1 / $number2;
    print "the result is: $div\n";
}

mais je ne comprends pas pourquoi le print(enter a number and enter another number est affiché après le STDIN).j'obtiens la sortie suivante

[612] perl test.pl
2
0
Enter a number:
Enter another number:
error:cnt divide by zero

1voto

snoofkin Points 4574

$| = 1 au début du programme

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X