From: Mischa POSLAWSKY Date: Thu, 12 Nov 2009 17:23:48 +0000 (+0100) Subject: XXX: comment ranges method code X-Git-Url: http://git.shiar.nl/perl/list-index.git/commitdiff_plain/20b084d596ff3d71a76dbc55a9f458911b4b8415 XXX: comment ranges method code --- diff --git a/lib/List/Index.pm b/lib/List/Index.pm index e30beef..574613e 100644 --- a/lib/List/Index.pm +++ b/lib/List/Index.pm @@ -28,12 +28,15 @@ sub ranges { while ($offset < @$self) { my $link = substr $self->[$offset], 0, $length; if ($context) { - my $trim = 1; + # take a value slightly before the current offset my $before = $offset > $context ? $self->[$offset - $context] : '.'; + # see how much of it matches the current link + my $trim = 1; for my $match (split //, $before) { scalar $link =~ /\G\Q$match/g or last; $trim++; } + # truncate link upto where the earlier value starts to differ substr($link, $trim) = '' unless $trim > length $link; }