Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options

output to STDOUT or a file

by metaperl (Curate)
on Sep 04, 2009 at 15:03 UTC ( #793480=snippet: print w/replies, xml ) Need Help??
Description: apparently FileHandle is deprecated in favor of IO. Here is some code that allows you to write to either STDOUT or a file.
use IO qw(File Handle);

my $io = do 
    if (shift) 
    my $tmp = IO::Handle->new;

    die "open failed: $!" unless $tmp->fdopen(fileno(STDOUT),"w");
    my $tmp = IO::File->new('tmp.out', 'w');

$io->print("Some text\n");

Replies are listed 'Best First'.
Re: output to STDOUT or a file
by bv (Friar) on Sep 04, 2009 at 18:12 UTC

    I'm confused about this line:

    if (shift)

    What are you shifting off? Or is it just a general "put a condition here" line? Also, how does this benefit over:

    my $fh; if(my $filename = shift) { open $fh, '>', $filename or die "Can't open $filename: $!"; } else { open $fh, '>&', STDOUT; } print $fh "Where do you want to go today?\n";
    print pack("A25",pack("V*",map{1919242272+$_}(34481450,-49737472,6228,0,-285028276,6979,-1380265972)))
Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: snippet [id://793480]
[atcroft]: Lady_Aleena: I found the L<name|section> syntax, which describes linking to a perl manual page, and L<text|url> to link to a web page. The reason I asked was because I was on looking at a module,
[atcroft]: and it referred to several other modules, but the links went to I found that a bit of a surprise, and it got me wondering if there was a "standard" way to link to other modules in the documentation on CPAN.
[Lady_Aleena]: atcroft. maybe look at raw PODs. There is also L<foo|http://foo. com> and some might be linking directly to meta::cpan.
[Lady_Aleena]: Oops, didn't read the L<text|url> right.

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (3)
As of 2017-05-27 03:56 GMT
Find Nodes?
    Voting Booth?