rsFalse has asked for the wisdom of the Perl Monks concerning the following question:
Any better solutions?$keys = ''; $keys .= 'field' . 'A'; @keys = split /field/, $keys, -1; # grabs trailing zero-lengths pop @keys;
use warnings; use strict; my @str = ( 'Value:', 'Value:.', 'Value:...', 'Value:A', 'Value:A.B', 'Value:.A', 'Value:A.', ); for (@str){ m/^ Value: \K (.*) $/x; my $keys = $1; my @keys; my $i = 0; @{ $keys[ $i ++ ] } = split /\./, $keys; @{ $keys[ $i ++ ] } = split /\./, $keys, -1; @{ $keys[ $i ++ ] } = $keys =~ m/\w*/g; @{ $keys[ $i ++ ] } = $keys =~ m/\w*?(?=\.|$)/g; my $keys_plus = $keys . '.A'; @{ $keys[ $i ++ ] } = split /\./, $keys_plus, -1; pop @{ $keys[ $i - 1 ] }; print "{$keys}:\n"; for my $j (0 .. $i - 1){ print map "<$_>\n", join '', map "[$_]", @{ $keys[ $j ] }; } print "\n"; } __END__ {}: <> <> <[]> <[]> <[]> {.}: <> <[][]> <[][]> <[][]> <[][]> {...}: <> <[][][][]> <[][][][]> <[][][][]> <[][][][]> {A}: <[A]> <[A]> <[A][]> <[A][]> <[A]> {A.B}: <[A][B]> <[A][B]> <[A][][B][]> <[A][][B][]> <[A][B]> {.A}: <[][A]> <[][A]> <[][A][]> <[][A][]> <[][A]> {A.}: <[A]> <[A][]> <[A][][]> <[A][][]> <[A][]>
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: 1 != split /a/, '' ?
by choroba (Cardinal) on Nov 03, 2015 at 10:44 UTC | |
by ikegami (Patriarch) on Nov 03, 2015 at 13:27 UTC | |
by Anonymous Monk on Nov 04, 2015 at 19:30 UTC | |
by Happy-the-monk (Canon) on Nov 04, 2015 at 22:12 UTC | |
|
Re: 1 != split /a/, '' ?
by AnomalousMonk (Archbishop) on Nov 03, 2015 at 11:02 UTC | |
|
Re: 1 != split /a/, '' ?
by jientho (Initiate) on Apr 18, 2016 at 16:01 UTC |