ん?なんで$dataをブラケット<>で囲むんだ?

while (<$data>) {}だと$dataに格納されている文字列が示す名前の
ファイルをオープンして順次$_にセットする挙動…のはず

print $data; #でOK

そもそもこれは成功コードでprint FILE $data;ってあるじゃん…