- 论坛徽章:
- 0
|
本帖最后由 kk861123 于 2013-09-21 12:24 编辑
回复 27# rubyish
哥们,不要搞的每次都这么纠结的,搞的俺也挺纠结的,这是我解析的code- #!/usr/bin/perl -w
- use strict;
- use Data::Dumper;
- my $str = q{a,b,c,d,e,[e1,e2,[e21,e22,e33],e3],f};
- my @stacks = ([]);
- my $stack = $stacks[-1];
- foreach my $field ( split /,/ => $str ) {
- if ( $field =~ m/\[(.*)/) {
- push @stacks, [$1];
- $stack = $stacks[-1];
- }
- elsif ($field =~ /(.*)\]/) {
- my $last_stack = pop @stacks;
- push @$last_stack, $1;
- $stack = $stacks[-1];
- push @$stack, $last_stack;
- }
- else {
- push @$stack, $field;
- }
- }
- print Dumper $stacks[0];
复制代码 |
|