On Thu, 2002-02-14 at 10:19, Martin A. Hansen wrote:
>
> hi
>
> i have inherited this piece of code and i have been wondering hard about how i can
>print the different @records returned from the subroutine? im not even sure whats on
>my hand here. is this a hash of arrays or a hash of array references? and how do i
>unwind those?
>
>
>
> martin, beginning perl.
>
>
>
>
> my @records = &parse_pubmed_fcgi( [ qw(UI AU TI TA VI IP PG DA) ] );
>
>
> ###################### subroutines ####################
>
>
> sub parse_pubmed_fcgi {
>
> my ( $keys ) = @_;
>
> my ( @records, $record, $record_id, $line, $key );
>
> my %wants = map { $_ => 1 } @{ $keys };
>
> while ( defined ($line = <>) ) {
> chop $line;
>
> if ( $line =~ /^(UI)\s*-/ ) {
> $key = $1;
>
> if ( $record ) {
> push @records, $record;
> undef $record;
> }
> }
>
> if ( $line =~ /^([A-Z]+)\s*-\s*(.+)/ ) {
> $key = $1;
> push @{ $record->{ $key } }, $2 if $wants{ $key };
> }
> elsif ( $line =~ /^\s+(\S.*)/ ) {
> $record->{ $key }->[-1] .= " $1" if $wants{ $key };
> }
> }
>
> push @records, $record if $record;
>
> if ( wantarray ) {
> return @records;
> } else {
> return \@records;
> }
>
> }
>
Data::Dumper is your friend. If you have a data structure and you don't
know what is in it just say:
print Dumper(\@Records);
and bingo the data structure is printed out to the screen.
--
Today is Setting Orange the 45th day of Chaos in the YOLD 3168
Kallisti!
Missle Address: 33:48:3.521N 84:23:34.786W
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]