Windows 7にStrawberry Perl 5.22をインストールしました。その後、Padre/Dwimperl(Strawberry 5.14を含む)をインストールしました。私は5.22をアンインストールしました。それから、 "D:\ Dwimperl \ perl \ bin"の "cpan SDL"を使ってSDLをインストールしました。正しくインストールされているようです。utf8を使用している場合、Perlの警告、strict&diagnosticエラーは出力されません。
Padre(および/またはコマンドライン)を使用すると、Perlスクリプトを実行できます。しかし、私がエラー( "$ r = 0;")を導入すると、 "use utf8;"をコメントアウトしない限り、warnings/strict/diagnosticsからの通常の出力は表示されません。
「use utf8;」を使用すると、
#! D:\Dwimperl\perl\bin\perl.exe
use warnings;
use strict;
use diagnostics;
use utf8;
binmode STDOUT, ':utf8';
$r = 0;
print "Hello World!\n";
exit 0;
は誰がどのように助言することができます:
Global symbol "$r" requires explicit package name at sdl2.pl line 12.
Execution of sdl2.pl aborted due to compilation errors (#1)
(F) You've said "use strict" or "use strict vars", which indicates
that all variables must either be lexically scoped (using "my" or "state"),
declared beforehand using "our", or explicitly qualified to say
which package the global variable is in (using "::").
Uncaught exception from user code:
Global symbol "$r" requires explicit package name at sdl2.pl line 12.
Execution of sdl2.pl aborted due to compilation errors.
at sdl2.pl line 15
これは私が使用しているスクリプトは次のとおりです。私はこのより有用なエラーを取得し、それがなければ
BEGIN not safe after errors--compilation aborted at D:/Dwimperl/perl/lib/diagnos
tics.pm line 599.
:私は、この非有用なエラーを取得します私は有用なエラーを保つことができ、utf8も使用できますか?
いいえ、@ラジャ!彼は__intentionally__エラーを生成するためにそれを省略しました。 OPの問題は、彼がutf8を使用するときにエラーが正しく報告されないということです。 – PerlDuck
私は 'use diagnostics'を避ける傾向があります。実際に行うことは、 'use warnings'の出力を取って[perldiag](http://perldoc.perl.org/perldiag.html)でそれを探して代わりに表示することです。ほとんどのエディタ&IDEは実際にあなたの問題を強調する 'warnings'モジュールの出力を探していませんでした。 – tjd
@BlueGF、ここで役に立つ回答が見つかった場合は、同様の質問をした他のユーザーに利益をもたらすように、upvoteおよび/またはacceptとしてマークしてください。 –