Text::Diff3::Text - line number scheme free text buffer
0.08
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 references. # follows four take same output. print $_, "\n" for @{$t0->text}; print $t0->as_string_at($_) for $t0->range; print $t0->as_string_range($t0->ragne); print $t0->as_string_at($_) for $t0->first_index .. $t0->last_index; print $t0->as_string_range($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;
This is a wrapper for a Perl's array reference, 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.
Author recommends you to create an instance 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 build-in diff processor.
When pass a string, it is split by /\n/ before store the line buffers. When pass an array reference, it simply assigned text properties without duplication. In the later case, the side effects will happen if you use same reference at another place.
$obj->text
Returns the line buffer attribute. It is an array reference.
$obj->list
Same as the text property, which is an interface property for ListMixin.
$obj->first_index
Returns first-index accessible by the `at' method.
$obj->last_index
Returns last-index accessible by the `at' method.
$obj->range
Returns a range between fist-index and last-index.
$obj->at
Returns a line specified by a line number. If line number is out of range, it returns undef.
$obj->as_string_at($x)
This is short cut for line accessing through `at'. If line number is out of range, it returns '', in otherwise returns line."\n".
$obj->as_string_range(@range)
Contatinents lines in the given line number array.
$obj->eq_at($x, $other)
This is short cut for comparison line and other string.
$obj->initialize
Makes initial state.
Use new function style interfaces introduced from version 0.08. This module remained for backward compatibility before version 0.07. This module is no longer maintenance after version 0.08.
MIZUTANI Tociyuki <tociyuki@gmail.com>.
<tociyuki@gmail.com>
Copyright (C) 2010 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.
To install Text::Diff3, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Text::Diff3
CPAN shell
perl -MCPAN -e shell install Text::Diff3
For more information on module installation, please visit the detailed CPAN module installation guide.