Если вы получаете это сообщение во время сохранения или компиляции сборки, просто закройте все файлы, а затем откройте любой файл для компиляции и сохранения.
Для меня причина в том, что я переименовал файл, и старый файл все еще был открыт.
Какая платформа? Если это были Windows и CMD.EXE, тогда всевозможные вещи могли бы пойти не так. На Unix-подобной платформе это должно работать нормально. Нет новой строки в конце, поэтому скорее всего ваше приглашение начнется с «Hello World», но это все.
С комментарием, что это Windows, проблема в том, что Windows CMD .EXE не анализирует командную строку так же, как Unix, и вы не можете просто использовать одинарные кавычки вокруг аргументов; вам нужно использовать двойные кавычки. Попробуйте:
perl -e "print qq{Hello World\n}"
Есть скромная вероятность, что он будет работать для вас.
Попробуйте: perl -e " print 'Hello..'; "
Это работает в консоли Windows CMD.EXE
, где цитирование не стандартизировано POSIX.
Из perldoc perlfaq3
- Почему в моей системе DOS / Mac / VMS не работают однострочные Perl?
Обычно проблема заключается в том, что команда переводчики на этих системах имеют совершенно иные представления о цитировании, чем оболочки Unix, под которыми создавались однострочные. В некоторых системах вам, возможно, придется сменить одиночные кавычки на двойные, которые вы НЕ ДОЛЖНЫ делать в системах Unix или Plan9. Возможно, вам также придется сменить один
%
на%%
. Например:# Unix (including Mac OS X) perl -e 'print "Hello world\n"' # DOS, etc. perl -e "print \"Hello world\n\"" # Mac Classic print "Hello world\n" (then Run "Myscript" or Shift-Command-R) # MPW perl -e 'print "Hello world\n"' # VMS perl -e "print ""Hello world\n"""
Проблема в том, что ни один из этих примеров не является надежным: они зависят от командного интерпретатора. В Unix работают первые два. В DOS вполне возможно, что ни одна из них не работает. Если 4DOS была командной оболочкой, вам, вероятно, повезло бы так:
perl -e "print <Ctrl-x>"Hello world\n<Ctrl-x>""
Под Mac это зависит от того, какую среду вы используете. Оболочка MacPerl или MPW очень похожа на Unix-оболочки в поддержке нескольких вариантов кавычек, за исключением того, что в качестве управляющих символов свободно используются символы не ASCII Mac.
Используя
blockquote>qq()
,q()
иqx()
, вместо «двойных кавычек», «одиночных кавычек» иbackticks
, можно упростить запись в один ряд. Для всего этого нет общего решения. Это беспорядок.