use warnings; use strict; sub resetfh { eof do { local *HANDLE; *HANDLE } } my @x = ; resetfh; warn "test"; __DATA__ 1 2 3