icon Top 9 categories map      RocketAware > Perl >

How come when I open the file read-write it wipes it out?

Tips: Browse or Search all pages for efficient awareness of Perl functions, operators, and FAQs.


Search Perl pages


By activity
Professions, Sciences, Humanities, Business, ...

User Interface
Text-based, GUI, Audio, Video, Keyboards, Mouse, Images,...

Text Strings
Conversions, tests, processing, manipulation,...

Integer, Floating point, Matrix, Statistics, Boolean, ...

Algorithms, Memory, Process control, Debugging, ...

Stored Data
Data storage, Integrity, Encryption, Compression, ...

Networks, protocols, Interprocess, Remote, Client Server, ...

Hard World
Timing, Calendar and Clock, Audio, Video, Printer, Controls...

File System
Management, Filtering, File & Directory access, Viewers, ...


How come when I open the file read-write it wipes it out?

Because you're using something like this, which truncates the file and then gives you read-write access:

    open(FH, "+> /path/name");  # WRONG

Whoops. You should instead use this, which will fail if the file doesn't exist.

    open(FH, "+< /path/name");  # open for update

If this is an issue, try:

    sysopen(FH, "/path/name", O_RDWR|O_CREAT, 0644);

Error checking is left as an exercise for the reader.

Source: Perl FAQ: Files and Formats
Copyright: Copyright (c) 1997 Tom Christiansen and Nathan Torkington.
Next: Why do I sometimes get an "Argument list too long" when I use <*>?

Previous: How can I translate tildes (~) in a filename?

(Corrections, notes, and links courtesy of RocketAware.com)

[Overview Topics]

Up to: File Access

Rapid-Links: Search | About | Comments | Submit Path: RocketAware > Perl > perlfaq5/How_come_when_I_open_the_file_re.htm
RocketAware.com is a service of Mib Software
Copyright 2000, Forrest J. Cavalier III. All Rights Reserved.
We welcome submissions and comments