{ # Temporarily undefine STDOUT. local *STDOUT; func(); } #### sub func { print("in func\n"); } print("pre func\n"); { # Temporarily undefine STDOUT. local *STDOUT; func(); } print("post func\n"); #### { # Temporarily redirect STDOUT. open(local *STDOUT, '>', '/dev/nul'); func(); }