STDIN と STDOUT に UTF-8 エンコーディングを適用しています。ただし、以下のコードに渡すファイルに UTF-8 エンコーディングを確実に適用するにはどうすればよいですか (コマンド ラインでテキスト ファイルが渡された場合、<> は STDIN ではなくファイルから読み取ります)。可能。
use open qw(:std :utf8)
while (<>) {
print;
}
STDIN と STDOUT に UTF-8 エンコーディングを適用しています。ただし、以下のコードに渡すファイルに UTF-8 エンコーディングを確実に適用するにはどうすればよいですか (コマンド ラインでテキスト ファイルが渡された場合、<> は STDIN ではなくファイルから読み取ります)。可能。
use open qw(:std :utf8)
while (<>) {
print;
}
プラグマのドキュメントによると、open
すでに必要な動作が得られています。
open
プラグマは、すべての I/O のデフォルトの「レイヤー」(「規律」とも呼ばれる) を宣言するインターフェイスの 1 つとして機能します。このプラグマのレキシカル スコープ内にある2 つの引数open
、readpipe
(別名) および同様の演算子は、宣言されたデフォルトを使用します。qx//
MODE で IO レイヤーを指定していない場合、引数が 3 つのオープンでも、このプラグマの影響を受ける可能性があります。
perlopのドキュメンテーションはwhile (<>) { ... }
、
unshift(@ARGV, '-') unless @ARGV; while ($ARGV = shift) { open(ARGV, $ARGV); while (<ARGV>) { ... # code for each line } }