I thought about AoA, but that is not enought. For example:
[1,2,3,4,5,6,7,8,9]
should be converted to something like this:
[1,[2,3,4],5,[6,[7,8,9]]]
What is missing in this structure is the placeholder, which will have a group name... that's a new value in the list!
I guess that I could manage the first element in each list as the name of the placeholder, resulting something like this:
[A,1,[B,2,3,4],5,[C,6,[D,7,8,9]]]
BTW, while traversing, how could I recognize if current element is a scalar or another list to recurse?
| [reply] [d/l] [select] |
> how could I recognize if current element is a scalar or another list to recurse?
with ref
> What is missing in this structure is theplaceholder, which will have a group name...
No idea what you may mean...
update
Maybe
[ {A => [1, {B => [2,3,4]} ,5, {C => [ 6, { D => [7,8,9] } ] } ]
? ? ?
(untested)
update
TIMTOWTDI
Instead of a one element hash you could use a 2 element array.
Or put the "placeholder" into the sub array as first element.
I personally prefer the hash solution for readability, but keep in mind that keys are stringified.
Cheers Rolf
(addicted to the Perl Programming Language and ☆☆☆☆ :)
| [reply] [d/l] |
Thanks for ref. I missed that ;-)
Your latest structure example looks nice, but I think it would complicate the search and replace algorithms, more than what BrowserUk said.
I think I'll stay with my AoA proposal, with the first element as the group name (adding a null or "root" element to the original list).
| [reply] |