Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight

Re: Re: Re: Re: String Manupulation

by davido (Cardinal)
on Aug 27, 2003 at 19:00 UTC ( [id://287135]=note: print w/replies, xml ) Need Help??

in reply to Re: Re: Re: String Manupulation
in thread String Manupulation

The example 'ought to work', but if it doesn't, the problem is related to your open statement failing.

It is always imperative to check the return value of open, to ensure that it succeeded. One common way is as follows:

open ( OUTFILE, ">$logfile" ) or die "Can't open $logifle.\n$!";

The other issue here is that if it turns out that it's failing, the probable reason is that logfile already exists and is either locked or set to permissions that prevent your script from opening it for writing.

This leads to a couple of additional issues:

First, you should probably either be testing for file pre-existance with:

if (-e $filename) { do something } else {do something else}

or opening for append rather than replace, with:

open ( OUTFILE, ">>$logfile" ) or die "Can't open $logfile:\n$!";

The other issue is that if the file is locked, it might just be a matter of waiting a second or two for it to be released by whoever is writing to it. ...which leads to another issue. If someone else (or some other program) is possibly writing to the same logfile, you really should be checking lock status prior to trying to open, and locking it when you use it, and appending to it rather than overwriting it.

Just a few suggestions and things to consider.


"If I had my life to do over again, I'd be a plumber." -- Albert Einstein

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://287135]
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others lurking in the Monastery: (3)
As of 2024-04-16 10:30 GMT
Find Nodes?
    Voting Booth?

    No recent polls found