.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . nr % 0 . rr F .\} .el \{\ . de IX .. .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "File::Inplace 3pm" .TH File::Inplace 3pm "2012-03-06" "perl v5.14.2" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" File::Inplace \- Perl module for in\-place editing of files .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& use File::Inplace; \& \& my $editor = new File::Inplace(file => "file.txt"); \& while (my ($line) = $editor\->next_line) { \& $editor\->replace_line(reverse $line); \& } \& $editor\->commit; .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" File::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. .SH "CONSTRUCTOR" .IX Header "CONSTRUCTOR" File::Inplace offers one constructor that accepts a number of parameters, one of which is required. .ie n .IP "File::Inplace\->new(file => ""filename"", ...)" 4 .el .IP "File::Inplace\->new(file => ``filename'', ...)" 4 .IX Item "File::Inplace->new(file => filename, ...)" .RS 4 .PD 0 .IP "file" 4 .IX Item "file" .PD The one required parameter. This is the name of the file to edit. .IP "suffix" 4 .IX Item "suffix" The suffix for backup files. If not specified, no backups are made. .IP "chomp" 4 .IX Item "chomp" If set to zero, then automatic chomping will not be performed. Newlines (actually, the contents of $/) will remain in strings returned from \f(CW\*(C`next_line\*(C'\fR. Additionally, the contents of $/ will not be appended when replacing lines. .IP "regex" 4 .IX Item "regex" If specified, then each line will be split by this parameter when using \f(CW\*(C`next_line_split\*(C'\fR method. If unspecified, then this defaults to \es+. .IP "separator" 4 .IX Item "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. .RE .RS 4 .RE .SH "INSTANCE METHODS" .IX Header "INSTANCE METHODS" .ie n .IP "$editor\->next_line ()" 4 .el .IP "\f(CW$editor\fR\->next_line ()" 4 .IX Item "$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. .ie n .IP "$editor\->replace_line (value)" 4 .el .IP "\f(CW$editor\fR\->replace_line (value)" 4 .IX Item "$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 \f(CW\*(C`separator\*(C'\fR specified at construction time. .ie n .IP "$editor\->next_line_split ()" 4 .el .IP "\f(CW$editor\fR\->next_line_split ()" 4 .IX Item "$editor->next_line_split ()" Line \f(CW\*(C`next_line\*(C'\fR, except splits based on the \f(CW\*(C`regex\*(C'\fR specified in the constructor. .ie n .IP "$editor\->has_lines ()" 4 .el .IP "\f(CW$editor\fR\->has_lines ()" 4 .IX Item "$editor->has_lines ()" Returns true if the file contains any further lines. .ie n .IP "$editor\->all_lines ()" 4 .el .IP "\f(CW$editor\fR\->all_lines ()" 4 .IX Item "$editor->all_lines ()" Returns an array of all lines in the file being edited. .ie n .IP "$editor\->replace_all_lines (@lines)" 4 .el .IP "\f(CW$editor\fR\->replace_all_lines (@lines)" 4 .IX Item "$editor->replace_all_lines (@lines)" Replaces \fBall\fR remaining lines in the file with the specified \f(CW@lines\fR. .ie n .IP "$editor\->commit ()" 4 .el .IP "\f(CW$editor\fR\->commit ()" 4 .IX Item "$editor->commit ()" Completes the edit operation and saves the changes to the edited file. .ie n .IP "$editor\->rollback ()" 4 .el .IP "\f(CW$editor\fR\->rollback ()" 4 .IX Item "$editor->rollback ()" Aborts the edit process. .ie n .IP "$editor\->commit_to_backup ()" 4 .el .IP "\f(CW$editor\fR\->commit_to_backup ()" 4 .IX Item "$editor->commit_to_backup ()" Saves edits to the backup file instead of the original file. .SH "AUTHOR" .IX Header "AUTHOR" Chip Turner, .SH "COPYRIGHT AND LICENSE" .IX Header "COPYRIGHT AND LICENSE" Copyright (C) 2005 by Chip Turner .PP 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.