binmode STDOUT => ":encoding(cp932)";
これ宣言すれば

わざわざencode()使わなくても変換してくれるから STDOUTだから

だから無くてもいい

ここよめカス
http://perldoc.jp/docs/modules/encoding-2.6/encoding.pod#ABSTRACT


#encodingはSTDIN と STDOUT の PerlIO 層を指定されたエンコーディングに変更します。
#内部的に指定された エンコーディングから utf8 に変換します

utf8にしてから希望の文字コード
euc-jpのテキストの場合
use open IN=>":encoding(euc-jp)"; ー> utf8 −> binmode STDOUT=>"encoding(cp932)";