NAME
File::Overwrite - overwrite the contents of a file and optionally unlink it
SYNOPSIS
use File::Overwrite qw(overwrite);
# haha, now no-one will know I stole it
overwrite('sekrit_formular.txt');
unlink('sekrit_formular.txt');
DESCRIPTION
This module provides a few simple functions for overwriting data files. This will protect against the simplest forms of file recovery.
SECURITY
This module makes all kinds of assumptions about your system - how the disks work, how the filesystem works, and so on. Even if it does overwrite the actual disk blocks containing the original data, this will not necessarily protect you against someone with sufficient equipment and/or determination. If you want to stop forensic recovery of the data, don't put it on a computer in the first place. If you have already put it on a computer, I recommend melting all your disks.
FUNCTIONS
All of the following functions can be exported if you wish. However, none are exported by default. All take a filename as their only parameter (any subsequent params are ignored) and die if that file can't be fiddled with. In case of failure, the file may be left fractionally fiddled.
- overwrite
-
Overwrites the file.
- overwrite_and_unlink
-
Overwrites and unlinks the file.
BUGS
None known. Please report any that you find using http://rt.cpan.org/.
You should be aware, however, that the tests are only rudimentary. There is no portable way of determining whether a file's data really is overwritten so I don't try very hard.
FEEDBACK
I like to know who's using my code. All comments, including constructive criticism, are welcome. Please email me.
AUTHOR
David Cantrell <david@cantrell.org.uk>
This module was written in response to a post by 'fluffyvoidwarrior' on perlmonks.
http://www.perlmonks.com/?node_id=525657
COPYRIGHT
Copyright 2006 David Cantrell
This module is free-as-in-speech software, and may be used, distributed, and modified under the same terms as Perl itself.
1 POD Error
The following errors were encountered while parsing the POD:
- Around line 104:
You forgot a '=back' before '=head1'