open(IN, "file.txt");
print <IN>;
close(IN);
のようにコード書いてたんですが、openの部分だけをcfopenと書き換えて
cfopenサブルーチン内でファイルの存在を確認した上でファイルを
オープンすることを考えてます。
そこで以下のようなcfopenサブルーチンを書いたのですが、
呼び出し時に、 open(*IN, "file.txt"); とファイルハンドルを
「*IN」と型グロブを使ってサブルーチン渡さないとダメのようですが
できるだけ元のコードを変えたくないので、「IN」のまま渡すような
cfopenを書く方法はないでしょうか?

sub cfopen
{
my $file = $_[1];
if (-e $file) {
open(CFP, $file);
$_[0] = *CFP;
return TRUE;
}
return FALSE;
}