Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories

Welcome to the new platform of Programmer's Heaven! We apologize for the inconvenience caused, if you visited us from a broken link of the previous version. The main reason to move to a new platform is to provide more effective and collaborative experience to you all. Please feel free to experience the new platform and use its exciting features. Contact us for any issue that you need to get clarified. We are more than happy to help you.

Is it possible to send stderr output to a file in perl

Prakash_RadhaPrakash_Radha Posts: 14Member
hi all, is it possible to send the standard error output to a file in perl like in unix.

In unix u have this 2> or 2>> to send the stderr output to a file. I haven't seen something like that in perl. Is it possible?

In perl select function is used to change the stdout to the filehandle provided. Is there any other function like select that can make stderr to be written in the file.

Can u please give me an example if it is possible?

Thanks.
prakash.

Comments

  • XfactorXfactor Posts: 343Member
    : hi all, is it possible to send the standard error output to a file in perl like in unix.
    :
    : In unix u have this 2> or 2>> to send the stderr output to a file. I haven't seen something like that in perl. Is it possible?
    :
    : In perl select function is used to change the stdout to the filehandle provided. Is there any other function like select that can make stderr to be written in the file.
    :
    : Can u please give me an example if it is possible?
    :
    : Thanks.
    : prakash.

    Actually you can do this and it's with the select function.
    Something like this should work:

    $old_fh = select; # saves current filehandle
    $cur_fh = select(STDERR); # sets current filehandle to stderr
    print "$whatever"; # will print to stderr
    print STDOUT "$whatever"; # will print to stdout

    $cur_fh = select($old_fh); # sets the filehandle back to original

    I hope this helps

    X
  • WeirdofreakWeirdofreak Posts: 439Member
    Or you can do:

    close STDERR;
    open STDERR, ">> logfile.txt";

    Which won't force you to put STDOUT in front of every print statement.
  • XfactorXfactor Posts: 343Member
    : Or you can do:
    :
    : close STDERR;
    : open STDERR, ">> logfile.txt";
    :
    : Which won't force you to put STDOUT in front of every print statement.

    A much easier way than what I suggested. I just learned something new but the thing is, will I remember this to use it later?

    X
Sign In or Register to comment.