#!/usr/bin/perl use strict; use warnings; my ($buf); { local *STDOUT; open( STDOUT, '>', \$buf ) or die "Write to buffer failed\n"; mysub(); } print "buffer: $buf\n"; sub mysub{ print "mysub output\n"; } #### ---------- Capture Output ---------- > "C:\Perl\bin\perl.exe" _new.pl buffer: mysub output > Terminated with exit code 0.