for my $p0 (1 .. 5-1) {
for my $p1 ($p0+1 .. 5-1) {
print(
substr('12345', 0, $p0),
"|",
substr('12345', $p0, $p1-$p0),
"|",
substr('12345', $p1, 5-$p1),
"\n",
);
}}
####
use Algorithm::Loops qw( NestedLoops );
my $num_objects = 5;
my $num_containers = 3;
my $str = join('', 1..$num_objects);
NestedLoops(
[
[ 1 .. $num_objects-1 ],
(sub { [ $_[-1]+1 .. $num_objects-1 ] }) x ($num_containers-2)
],
sub {
my $str = $str;
substr($str, $_, 0, '|') for reverse @_;
print("$str\n");
},
);
##
##
1|2|345
1|23|45
1|234|5
12|3|45
12|34|5
123|4|5