これはできるんだけど

open(F, '<&DATA') or die;
while (<F>){print}
__DATA__
abc
def

これはできません。どうやったら DATA をリダイレクトできるんでしょうか?

use IO::File;
my $fh = new IO::File('<&DATA');
die "$!\n" unless ($fh);
while (<$fh>){print}
__DATA__
abc
def