[[FrontPage]]
 
 #contents
 
 ** 標準入力とコマンド行引数からの入力を<>で受けるときの違い [#je141ac5]
 
 perl で perl script.pl foo.txt と perl script.pl < foo.txt。<>で受けるときは同じと思っていたけれど違うときもあった。
 
  binmode STDIN, ":encoding(Shift_JIS)";
  binmode STDOUT, ":encoding(utf8)";
  while(<>){ print };
 
 たとえば入力テキスト
  よだかは、実にみにくい鳥です。
   顔は、ところどころ、味噌(みそ)をつけたようにまだらで、くちばしは、ひらたくて、耳までさけています。
   足は、まるでよぼよぼで、一間(いっけん)とも歩けません。
   ほかの鳥は、もう、よだかの顔を見ただけでも、いやになってしまうという工合(ぐあい)でした。
 
 に対し
  perl script.pl foo.txt
 と
  perl script.pl < foo.txt
 では結果が違う。
  perl 5.8.8 でlinux,Windows共に再現する。
 
 ** use utf8 は require した先への効果 [#c7bc6b1b]
 
 スクリプトfoo.plで
  use utf8;
 
  require bar.pl
 
 したときに bar.plの文字列にはutf8フラグはつかない。
 
 foo.pl
  use utf8;
  
  $a = "テスト";
  $b = "テスト";
  #require  "bar.pl";
  
  print "\$a:", utf8::is_utf8($a)?"utf8 flag\n":"no flag\n";
  print "\$b:", utf8::is_utf8($b)?"utf8 flag\n":"no flag\n";
 
 bar.pl
   $b = "テスト";
 
 

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS