使用環境はWindows+ActivePer5.10.0lです

$file = "テスト";
open FH, ">$file"; →失敗
open FH, '>$file'; →書き込めるが当然変数展開がされない
open FH, ">テスト"; →成功
open FH, '>テスト'; →成功

ファイル名を変数を使わずに直接記述するとうまくいきました
変数に格納されている文字列の形式がおかしいのかな…