Adventures in regular expressions, part 4
#!/usr/bin/perl --
use strict; use warnings;
use Data::Dump;
my $blah = ' VAR DS 0D
DC AL1(045),AL2(286),AL2(117),AL2(290)';
my ( $top, $bottom ) = split /[\r\n]+/, $blah;
print "$top\n";
#~ my( $prefix, @biscuits ) = grep length, split /[\s,]+/, $bottom;
#~ my( $prefix, @biscuits ) = split /(?:(?<!^)\s+)|,/, $bottom;
#~ my( $prefix, @biscuits ) = split /(?:(?<!^)\b\s+)|,/, $bottom;
#~ my( $prefix, @biscuits ) = split /(?:(?<!\A)\b\s+)|,/, $bottom;
my( $prefix, @biscuits ) = $bottom =~ /(^\s+\S+)|([^\s\(]+\([^\s\)]+\)
+)/g;
dd \$prefix, \@biscuits ;
for my $tack ( @biscuits ){
print "$prefix $tack\n";
}
__END__
$ perl shineon004
Use of uninitialized value $tack in concatenation (.) or string at shi
+neon004 line 20.
Use of uninitialized value $tack in concatenation (.) or string at shi
+neon004 line 20.
Use of uninitialized value $tack in concatenation (.) or string at shi
+neon004 line 20.
Use of uninitialized value $tack in concatenation (.) or string at shi
+neon004 line 20.
Use of uninitialized value $tack in concatenation (.) or string at shi
+neon004 line 20.
VAR DS 0D
(
\" DC",
[
undef,
undef,
"AL1(045)",
undef,
",AL2(286)",
undef,
",AL2(117)",
undef,
",AL2(290)",
],
)
DC
DC
DC AL1(045)
DC
DC ,AL2(286)
DC
DC ,AL2(117)
DC
DC ,AL2(290)