Hello kuldeek, and welcome to the Monastery!
I’m not sure exactly what you want, but perhaps the select function is what you’re looking for:
#! perl
use strict;
use warnings;
use autodie;
my %test_hash = ( Foo => 1, Bar => 1, Baz => 1, Nix => 0 );
foreach my $test_run (keys %test_hash)
{
if ($test_hash{$test_run} == 1)
{
my $test_execute = $test_run;
my $test_execute1 = $test_run . '.pm';
my $logfile = $test_execute . '_log.txt';
print "the logfile is $logfile\n";
open(my $out, '>', $logfile);
select $out;
require $test_execute1;
$test_execute->$test_execute();
close($out);
select STDOUT;
}
}
With suitable modules Foo.pm, Bar.pm, and Baz.pm, this code creates a log file for each module and redirects STDOUT to it from that module’s test sub. Output from print "the logfile is $logfile\n" is not redirected.
See how do i redirect STDOUT, STDIN, or STDERR to a FILE?.
Hope that helps,
Athanasius <°(((>< contra mundum
|