File::Inplace(3) User Contributed Perl Documentation File::Inplace(3)NAMEFile::Inplace - Perl module for in-place editing of files
SYNOPSIS
use File::Inplace;
my $editor = new File::Inplace(file => "file.txt");
while (my ($line) = $editor->next_line) {
$editor->replace_line(reverse $line);
}
$editor->commit;
DESCRIPTIONFile::Inplace is a perl module intended to ease the common task of
editing a file in-place. Inspired by variations of perl's -i option,
this module is intended for somewhat more structured and reusable
editing than command line perl typically allows. File::Inplace
endeavors to guarantee file integrity; that is, either all of the
changes made will be saved to the file, or none will. It also offers
functionality such as backup creation, automatic field splitting per-
line, automatic chomping/unchomping, and aborting edits partially
through without affecting the original file.
CONSTRUCTORFile::Inplace offers one constructor that accepts a number of
parameters, one of which is required.
File::Inplace->new(file => "filename", ...)
file
The one required parameter. This is the name of the file to
edit.
suffix
The suffix for backup files. If not specified, no backups are
made.
chomp
If set to zero, then automatic chomping will not be performed.
Newlines (actually, the contents of $/) will remain in strings
returned from "next_line". Additionally, the contents of $/
will not be appended when replacing lines.
regex
If specified, then each line will be split by this parameter
when using "next_line_split" method. If unspecified, then this
defaults to \s+.
separator
The default character used to join each line when replace_line
is invoked with a list instead of a single value. Defaults to
a single space.
INSTANCE METHODS
$editor->next_line ()
In scalar context, it returns the next line of the input file, or
undef if there is no line. In an array context, it returns a
single value of the line, or an empty list if there is no line.
$editor->replace_line (value)
Replaces the current line in the output file with the specified
value. If passed a list, then each valie is joined by the
"separator" specified at construction time.
$editor->next_line_split ()
Line "next_line", except splits based on the "regex" specified in
the constructor.
$editor->has_lines ()
Returns true if the file contains any further lines.
$editor->all_lines ()
Returns an array of all lines in the file being edited.
$editor->replace_all_lines (@lines)
Replaces all remaining lines in the file with the specified @lines.
$editor->commit ()
Completes the edit operation and saves the changes to the edited
file.
$editor->rollback ()
Aborts the edit process.
$editor->commit_to_backup ()
Saves edits to the backup file instead of the original file.
AUTHOR
Chip Turner, <chipt@cpan.org>
COPYRIGHT AND LICENSE
Copyright (C) 2005 by Chip Turner
This library is free software; you can redistribute it and/or modify it
under the same terms as Perl itself, either Perl version 5.6.0 or, at
your option, any later version of Perl 5 you may have available.
POD ERRORS
Hey! The above document had some coding errors, which are explained
below:
Around line 283:
You forgot a '=back' before '=head1'
Around line 285:
'=item' outside of any '=over'
perl v5.14.0 2005-01-29 File::Inplace(3)