Leser: 3
|< 1 2 3 4 >| | 32 Einträge, 4 Seiten |
foo("foobar-hutzel-putzel") = [foo("foobarhutzel-putzel"), foo("foobar-hutzelputzel")]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$str = 'foo-bar-hutzel-putzel';
$len = scalar(@arr = $str =~ /-/g);
$max = (2 ** scalar(@arr)) - 1;
$pat = '^' . '([^-]*)-' x scalar(@arr) . '([^-]*)$';
for $i ( 0..$max ) {
$bits = sprintf("%03b", $i);
$subs = '';
for $j ( 0..($len-1) ) {
$subs .= '$' . ($j+1) . ((($bits >> $j) & 0x1) ? '-' : '');
}
$subs .= '$4';
eval("(\$tmp = '$str') =~ s/$pat/$subs/;");
printf("$tmp\n");
}
1
2
3
4
5
6
7
8
foobarhutzelputzel
foo-barhutzelputzel
foobar-hutzelputzel
foo-bar-hutzelputzel
foobarhutzel-putzel
foo-barhutzel-putzel
foobar-hutzel-putzel
foo-bar-hutzel-putzel
$len = $str =~ tr/-//;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
my $len = $str =~ tr/-//;
my $max = (2 ** $len) - 1;
my $pat = '^' . '([^-]*)-' x $len . '([^-]*)$';
for my $i ( 0 .. $max ) {
my $bits = sprintf("%03b", $i);
my $subs = '';
$subs .= '$' . ($_+1) . ((($bits >> $_) & 0x1) ? '-' : '')
for (0 .. $len-1);
$subs .= '$'.($len+1);
my $tmp;
eval("(\$tmp = '$str') =~ s/$pat/$subs/;");
push @retval, $tmp;
}
|< 1 2 3 4 >| | 32 Einträge, 4 Seiten |