Christopher Spears <[EMAIL PROTECTED]> wrote:

: Here is the latest version of my script:

    I think you are using the wrong approach to parsing
this output. You're making it a lot more complicated
than it needs to be. I omitted the report and question
sections. Your report data is in %licenses.

    Read 'perldsc' for info on printing from a hash of
arrays (HoA).

    I use a sub routine to fetch the licenses. In that
sub I remove all lines except the ones starting with a
" and those containing a handle.

use strict;
use warnings;
use Data::Dumper 'Dumper';

my $name;
my %licenses;
foreach ( fetch_licenses() ) {
    if ( /"([^"]+)/ ) {
        $name = $1;

    } elsif ( m|lex/\d+ (\d+)| ) {
        push @{ $licenses{ $name } }, $1;
    }
}

print Dumper \%licenses;


sub fetch_licenses {
    my @raw_licenses = `cat clicenses_output`;

    # keep only license names and handles
    return grep { m/^\s+"/ or m|\(lex/\d+ \d+\)| } @raw_licenses;
}

__END__

    Sometimes it necessary to scrap what you are doing
and just start again.

HTH,

Charles K. Clarkson
-- 
Mobile Homes Specialist
254 968-8328


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>

Reply via email to