- or download this
my @ends = map{ [$_->[0], $_, 'S'], [$_->[-1], $_, 'E'] } @data;
- or download this
@ends = sort{
$b->[0]{X} <=> $a->[0]{X}
...
||
$b->[2] cmp $a->[2]
} @ends;
- or download this
sub mapAdjPairs (&@) {
my $code = shift;
map { local ($a, $b) = (shift, $_[0]); $code->() } 0 .. @_-2;
}
- or download this
my @merged = mapAdjPairs{
if ($a->[2] eq 'S') { # $a is a start point
...
}
return;
} @ends, $ends[0]; # Note:Repeat first element last to complete cycle
- or download this
c:\test>240810
X 11 Y 12 X 12 Y 13 X 13 Y 14 X 14 Y 15 X 15 Y 16 X 16 Y 17 X 17
+ Y 18 X 18 Y 19 X 19 Y 20
...
X 1 Y 2 X 1 Y 3 X 1 Y 4
c:\test>
- or download this
#! perl -slw
use strict;
...
X 10 Y 10 X 11 Y 11 X 12 Y 12 X 13 Y 13 X 14 Y 14 X 15 Y 1
+5 X 16 Y 16 X 17 Y 17 X 18 Y 18 X 19 Y 19 X 20 Y 20 X 21
+Y 21 X 22 Y 22 X 23 Y 23 X 24 Y 24
X 1 Y 2 X 1 Y 3 X 1 Y 4