use FileHandle::Rollback; my $INDEXFILE_M; $INDEXFILE_M=&abc(); $INDEXFILE_M->commit();#error sub abc{ my $INDEXFILE = FileHandle::Rollback->new("< a.txt") or die "cannot open filehandle: $!"; select($INDEXFILE); print "AAAA"; return \*$INDEXFILE; }