【日本語処理の基礎】
use utf8;
use open IO => ":encoding(cp932)";
binmode STDIN => ":encoding(cp932)";
binmode STDOUT => ":encoding(cp932)";
binmode STDERR => ":encoding(cp932)";
use Encode;

ファイル名は文字列として扱えないので
・シェルのリダイレクトを利用する
・コマンドラインパラメータで渡す
・環境変数に設定しておきそれを使う
のようにします。