Звучит довольно странно.Как вы выполняете эту программу?Если вы запускаете эту программу в системе, которая ожидает новые строки в стиле Windows, но создает ее с помощью текстового редактора, который генерирует новые строки в стиле Unix, что может привести к вашей проблеме.Попробуйте убедиться, что ваш текстовый редактор настроен на использование перевода строки в стиле Windows, если вы находитесь в Windows.
#!/usr/bin/perl
не является комментарием.Это называется строкой shebang, и в системах Unix, если вы выполняете текстовый файл (то есть вы chmod +x filename.pl
, а затем выполняете его с ./filename.pl
вместо perl filename.pl
), система ищет это в самой первой строкеи если он находит его, передает весь файл утилите, расположенной в этом файле, в данном случае /usr/bin/perl
.Это полезно только в Unix-системах и только в том случае, если вы хотите, чтобы скрипт выполнялся.
В качестве другого совета - perl использует выходной буфер для всего, что передается print
.Это означает, что если вы print
что-то не заканчиваете символом новой строки (\n
), оно удерживается в буфере до тех пор, пока вы не очистите буфер (обычно это не требуется в perl), не напечатаете что-либо, содержащее символ новой строки, иливыйти из программы.Вы можете переопределить эту функцию, добавив $| = 1;
в свою программу, но лучше всего заканчивать свои сообщения новыми строками, в противном случае ваш экран просто загромождается.