use Data::Dumper; my $s1 = 'X -4 Y 3 Z'; my $s2 = 'W 1 X -4 Y 3 Z'; my $s3 = 'X 2 Y'; my $s4 = 'A -4 B -4 C -4 A -4 B'; decomp_str($s1); decomp_str($s2); decomp_str($s3); decomp_str($s4); sub decomp_str { my @dcomp; $_ = shift; while( /^(\S\s+\S+\s+)(\S)(.*)$/ ) { push @dcomp, $1 . $2; $_ = $2 . $3; } ( length() == 1 ) or die( "Syntax error: $_\n" ); print Dumper \@dcomp; return \@dcomp; }
-M
Free your mind
In reply to Re: Decompose a String into Tuples (Faster and Compact Way)
by Moron
in thread Decompose a String into Tuples (Faster and Compact Way)
by neversaint
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |