Text::Diff3::ListMixin - methods collection like as ruby-lang.
package AnyList;
use base qw(Text::Diff3::ListMixin Text::Diff3::Base);
sub list { return $_[0]->buffer }
package AnyListUser;
use SomeFactory;
my $list = SomeFactory->new->create_anylist;
$list->push($x, $y);
$x = $list->pop;
$list->unshift($x, $y);
$x = $list->shift;
until ($list->is_empty) {
$x = $list->shift;
$x = $list->first->foo;
$y = $list->last->bar;
}
$list->size == 3 or die "excepts \$list->size == 3".
$list->each(sub{
my($x) = @_;
print $x, "\n";
});
This is a mix-in class derived delegates to the list attributes.
- "$list->at($x)"
- Fetchs an element at index $x.
- "$list->push($x)"
- Pushs into the list.
- "$list->pop"
- Pops from the list.
- "$list->unshift($x)"
- Unshifts into the list.
- "$list->shift"
- Shifts from the list.
- "$list->is_empty"
- Returns true when the list is empty.
- "$list->size"
- Returns size of the list.
- "$list->first"
- Fetchs first element in the list.
- "$list->last"
- Fetchs last element in the list.
- "$list->each(sub{})"
- Iterates given code reference for each elements.
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>".
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.