sub openOut { my $filename = shift; open my $fh, '>', $filename or die $!; select $fh; return $fh; }; #### # void context, no handle to close openOut ("file1"); print "foo\n"; # scalar context, handle stored so can be closed, printed to explicitly, etc. my $handle = openOut ("file2"); print "bar\n"; closeOut ($handle);