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


in reply to How to display the .pl process in command line

Well, I have a couple recommendations. For one, please organize your code. Remember DRY(Don't Repeat Yourself), there is a lot of code duplication in that snippet. And also think about logically grouping your code. Secondly(and most importantly), I think you want IO::Tee.

use IO::Tee; my $out_handles = new IO::Tee(\*STDOUT, new IO::File('>random_file.txt +')); print $out_handles "*Hey Buddy*\n"; print $out_handles "*I'm on your screen and your file!*\n";

So, essentially, IO::Tee allows you to write to multiple file handles simultaneously.

You could use a second print statement with just a string to accomplish the same result. Or select. Plus a bunch I can't think of right now. Always a lot of choices.

Replies are listed 'Best First'.
Re^2: How to display the .pl process in command line
by astronogun (Sexton) on Mar 27, 2012 at 09:08 UTC
    it failed.. I download the IO::File at cpan then when i run the command it said that Can't locate object method "new" via package "IP::File (perhaps you forgot to load "IP::File"?) the i add use IP::File then it said that can' locate IP/File.pm then I checked cpan for download there's no IP::File.. did do it incorrectly? Thanks
      IO::File and IO::Tee. Not sure what IP::File is, looks like a typo. You may have to 'use IO::File'. It is a core module.

        Hmm how about this? I want it to make it simpler... After running the script (the one I posted above) it will display "Ok" or if it's failed it will display an error message.. I'm reading regarding STDIN, STDOUT and STDERR.. but I'm having hard time understanding... Any ideas?

        Hmm how about this? I want it to make it simpler... After running the script (the one I posted above) it will display "Ok" or if it's failed it will display an error message.. I'm reading regarding STDIN, STDOUT and STDERR.. but I'm having hard time understanding... Any ideas?