http://www.perlmonks.org?node_id=1004745


in reply to Perl and Selenium Grid 2 - Redirecting STDOUT not working how I need it to.

hello Doozer,

Not a solution, but I rewrote the beginning of your script using a hash to avoid having to test before $hostname assignment. Loop variables probably shouldn't be declared globally either. Anyways, here's what I came up with.

#!/usr/bin/perl use strict; use warnings; my %hosts = ( "192.168.1.206" => "Windows_XP", "192.168.1.207" => "Windows_Vista", "192.168.1.208" => "Windows_7", "192.168.1.230" => "MAC_OSX_Mountain_Lion", "192.168.1.231" => "MAC_OSX_Lion" ); my @browsers = qw/ firefox googlechrome iexplore /; my $browserurl = 'http://admin:sky@192.168.0.1/'; my $date = (localtime); foreach my $browser (@browsers) { foreach my $host (keys %hosts) { my $sel = Test::WWW::Selenium->new(host => "$host", port => 5555, browser => $browser, browser_url => "http://192. +168.0.1" ); my $hostname = $hosts{$host}; open STDOUT, "+>/varwww/cgi-bin/Perl-Scripts/$hostname\_$brows +er\.txt" or die "Failed to open $hostname\_$browser.txt: $!\n"; print "$host - $hostname - $browser - $date\n\n"; } }

Happy Tuesday.

Replies are listed 'Best First'.
Re^2: Perl and Selenium Grid 2 - Redirecting STDOUT not working how I need it to.
by Doozer (Scribe) on Nov 20, 2012 at 16:03 UTC
    Thanks! I really appreciate you taking the time to do that and I will definitely look at using it in my script to make things neater.

    On another note, I actually solved my problem with a lucky find on Google instigated by tye's last comment. The package Test::More has a function where test output can be redirected to any file I like and can be split apart just like STDOUT and STDERR. Thanks for the input you all have already made and if there are any more suggestions to streamline the script I would welcome them!

      What was the solution, specifically? I'm running into this and finding it very difficult.