http://qs321.pair.com?node_id=11133065


in reply to Re: Regexp substitution on variable-length ranges with embedded code? ( $^N )
in thread Regexp substitution on variable-length ranges with embedded code?

> $^N

indeed

use v5.12; use warnings; my $str ='43:1:1; 43:1:2; 43:1:3; 43:1:4; 43:1:5; 43:1:6; 27:3:7; 27:3 +:8; 27:3:9; 65:1:4; 65:1:18'; say $str; $str =~ s#(\d+:\d+:)(\d);(?: \1((??{$^N+1}));)+#$1$2-$3#g; say $str;

C:/Strawberry/perl/bin\perl.exe -w d:/tmp/pm/sequencer.pl 43:1:1; 43:1:2; 43:1:3; 43:1:4; 43:1:5; 43:1:6; 27:3:7; 27:3:8; 27:3:9 +; 65:1:4; 65:1:18 43:1:1-6 27:3:7-9 65:1:4; 65:1:18 Compilation finished at Wed May 26 15:46:31

Cheers Rolf
(addicted to the Perl Programming Language :)
Wikisyntax for the Monastery

PS: beautifying with /x modifier and adding missing ; in replacement left for the interested reader. :)