#!/usr/bin/perl -w
use strict;
use HTML::TokeParser::Simple;
use Data::Dumper;
my $pseudo_html;
{
local $/;
$pseudo_html = ;
}
print Dumper parse_column_list( $pseudo_html );
sub parse_column_list {
my ($str) = @_;
my $p = HTML::TokeParser::Simple->new(\$str);
my (@cl, $label, %attr);
my %attr_default = ( na => 0 );
while(my $t = $p->get_token) {
if ( $t->is_start_tag( 'column' ) ) {
$label = '';
%attr = (%attr_default, %{$t->return_attr});
}
elsif ( $t->is_end_tag( 'column' ) ) {
push @cl, { %attr, label => $label };
}
else {
$label .= $t->return_text;
}
}
return \@cl;
}
__DATA__
Colum One Header
Column Two Header
Etcetera