NAME
Text::Diff3::Text - line number scheme free text buffer
SYNOPSIS
use Text::Diff3;
my $f = Text::Diff3::Factory->new;
my $t0 = $f->create_text([ map{chomp;$_} <F0> ]); # do not dup internally
my $t1 = $f->create_text( $string ); # make array refs
# follows four take same output
print $_, "\n" for @{ $t0->text };
print $t0->as_string_at( $_ ) for $t0->range;
print $t0->as_string_at( $_ ) for $t0->first_index .. $t0->last_index;
for ( $t0->first_index .. $t0->last_index ) {
my $line = $t0->at( $_ );
print $line, "\n" if defined( $line );
}
# string compare
if ( $t0->eq_at( $i, $string ) ) { .... }
# get string size
my $length = $t0->size;
ABSTRACT
This is a wrapper for a Perl's arrayref, improving line number scheme free and limiting fetching from last element by minus index. Normally line number starts 1 in compatible with diff command tools. But you can change it another value like as 0 override first_index methods.
DESCRIPTION
create
Author recommends you to create an instanse of text by using with a factory as follows.
use SomeFactory;
my $f = SomeFactory->new;
my $t = $f->create_text( string or arrayref );
Text::Diff3::Factory is a class to packaging several classes for the buildin diff processor.
When pass a string, it splited /\n/ before store the line buffers. When pass a arrayref, it simply assigned text properties without duplication. In the later case, the side effects will happen if you use same reference at another place.
text
line buffer's property. It is an arrayref.
list
line buffer's property as same as text. It is an arrayref. This is an interface properties for ListMixin.
first_index
first_index value accessing by the `at' method.
last_index
last_index value accessing by the `at' method.
range
returns a range between fist_index and last_index
at
returns a line specified by a line number. If line number is out of range, returns undef.
as_string_at
short cut for line accessing through `at'. If line number is out of range, returns '', in otherwise returns line . "\n".
eq_at
short cut for comparison line and other string.
AUTHOR
MIZUTANI Tociyuki <tociyuki@gmail.com>
COPYRIGHT AND LICENSE
Copyright (C) 2005 MIZUTANI Tociyuki
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version.