Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

perl open readonly question

by renegadex (Beadle)
on Sep 11, 2010 at 12:52 UTC ( #859745=perlquestion: print w/replies, xml ) Need Help??

renegadex has asked for the wisdom of the Perl Monks concerning the following question:

I have a computer that has a shared folder on it. inside the shared folder is a file called test.txt. the shared folder is read only to other computers. my question is, if a program in that computer is appending stuffs on test.txt and a different program on a different computer opens that file using the code below
open(FH,"/path/to/shared/test.txt);
will it affect the appending of files of the other program? or do i have to use the code below instead?
open(FH,"</path/to/shared/test.txt);
so as to declare that it is on readonly mode.
Mabuhay Civil Engineers! :D

Replies are listed 'Best First'.
Re: perl open readonly question
by Anonymous Monk on Sep 11, 2010 at 13:06 UTC
    The file will always be affected, but its better to use 3 arg open
    use autodie; open my($fh), '<', '/path';
    autodie does error checking for you
Re: perl open readonly question
by Corion (Patriarch) on Sep 11, 2010 at 13:14 UTC

    See open:

    ... If MODE is '<' or nothing, the file is opened for input. ...
Re: perl open readonly question
by doug (Pilgrim) on Sep 12, 2010 at 14:57 UTC

    For your specific question, there is no difference between the two. If you don't put any of the input or output type characters in the filename, then it defaults to read only. perldoc -f open should explain that in detail.

    As for one open() affecting another one, perl's open() is always subject to the the host OS's file system semantics. If the host's open causes problems, then perl's open will too.

    For years a standard trick in the *ix world is to have one process write to a file and another use "tail -f" to watch that file as it gets updated. This has worked well for decades, and the biggest issue being that when they are on two different machines, the commit from the client to the file server is usually at 8k boundaries (I think that is a NFSism), so it doesn't flow smoothly. But it does work.

    Since you are using the term folder instead of directory I assume that you are using some MS operating system. I avoid them as much as possible, so I don't know how this will work there. Good luck with that.

    - doug

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://859745]
Approved by moritz
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (3)
As of 2022-05-20 07:15 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Do you prefer to work remotely?



    Results (72 votes). Check out past polls.

    Notices?