sub DESTROY { warn "Destroying $_[0][0]...\n"; die "Die from $_[0][0]\n" } $global= "before"; eval {{ local $global= bless ["global"]; die "Die inside eval.\n" unless @ARGV; }}; warn "global($global) eval($@)\n"; #### Destroying global... global(before) eval(Die inside eval. (in cleanup) Die from global )