Ввод пользователя в perl - проблема с запуском скрипта в KomodoEdit - PullRequest
0 голосов
/ 23 апреля 2010

я написал этот крошечный код на gedit и запустил его: -

#/usr/bin/perl
print "Enter the radius of circle: \n";
$radius = <>;
chomp $radius;
print "radius is: $radius\n";
$circumference = (2*3.141592654) * $radius;
print "Circumference of circle with radius : $radius = $circumference\n";

Работает нормально, используя командную строку. Дайте тот же код на Komodo. Правка: столкнувшись с проблемой, я ожидаю вывод первой строки в виде: - Введите радиус круга: когда он ожидает на экране, то есть ждет ввода и после этого запускает все по порядку - может кто-нибудь сказать мне, почему он работает нормально с командной строкой, но не с Komodo?


вывод после изменения # / usr / bin / perl на #! / Usr / bin / perl: - также нужно было объявить мой $ радиус и мою $ окружность --------------- -------------------------------------------

12 # same i had to enter 12
Enter the radius of circle: 
radius is: 12
Circumference of circle with radius : 12 = 75.398223696

Ответы [ 2 ]

0 голосов
/ 06 мая 2010

Хотя «использовать строгий» и правильно написанную строку Шебанга всегда хорошие вещи, и не фактическая причина. Когда вы запускаете интерактивную программу в В среде без командной строки обычно следует отключить буферизацию ввода-вывода. В Perl вы должны поместить эту строку вверху вашего кода:

$| = 1;
0 голосов
/ 23 апреля 2010

Я проверил ваш скрипт, используя Komodo edit, и он отлично работает, за исключением следующих исправлений.

#!/usr/bin/perl -w
use strict;

print "Enter the radius of circle: \n";
my $radius = <>;
chomp $radius;
print "radius is: $radius\n";
my $circumference = (2*3.141592654) * $radius;
print "Circumference of circle with radius : $radius = $circumference\n";

Выход в Комодо

Enter the radius of circle: 
5
radius is: 5
Circumference of circle with radius : 5 = 31.41592654
...