logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

File::Inplace - Perl module for in-place editing of files

Author

       Chip Turner, <chipt@cpan.org>

Constructor

       File::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.

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.

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.

Name

       File::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;

See Also