Hi, if I understand your question correct, you want to extract information from each token.
So splitting the string into tokens first and then extracting any useful information
one by one might be a suitable approach for you?
use strict;
sub extract {
chomp(my $orig = shift);
foreach ( split(/,/, $orig) ) { # scan list of tokens
if ( / <\*\d+> ([^<]+) < (\d+) : (\d+) > /x ) {
# do something with extracted information
print "got $1/$2/$3 from '$orig'\n";
}
}
}
extract($_) while (<DATA>);
__DATA__
<*2>H<3:0>,<*2>I<3:0>,...,<*2>Z<2:0>
H<3:0>,<*2>I<3:0>,...,<*2>Z<2:0>
Prints:
got H/3/0 from '<*2>H<3:0>,<*2>I<3:0>,...,<*2>Z<2:0>'
got I/3/0 from '<*2>H<3:0>,<*2>I<3:0>,...,<*2>Z<2:0>'
got Z/2/0 from '<*2>H<3:0>,<*2>I<3:0>,...,<*2>Z<2:0>'
got I/3/0 from 'H<3:0>,<*2>I<3:0>,...,<*2>Z<2:0>'
got Z/2/0 from 'H<3:0>,<*2>I<3:0>,...,<*2>Z<2:0>'