>>65 Perl5 少しスマートに書けた(文字列マッチンク処理゙主体になっちまったけれど…)

$"=',';
for (qw{[1] [2,3] [1,2,3] [1,3] [1,3,4,5]}) {
 @a = /(\d+)/g;
 %h = map{$_ => $_} @a;
 @b = map{$h{$_}//' '} 1..20;
 $b = "@b";
 @c = $b =~ /(\d(?:,\d)*)/g;
 s/(,\d+)+,/-/ for @c;
 print "@c\n";
}

実行
~ $ perl 17_61_resanc_0330.pl
1
2,3
1-3
1,3
1,3-5