in reply to Complex Mapping

How you are reading the data from the datafile?

If first line always mention the 'titles' and second line mentions the values in the same order as 'titles', then you work is easy. Assuming you have no spaces in your individual data-value, here is the code that can help

chomp($title_line = <DATAFILE>); chomp($value_line = <DATAFILE>); @titles = split /\s+/,$title_line; @values = split /\s+/,$value_line; map { $Data->{$_} = shift @values } @titles;
Thus you have build the hash of Keys and values which you can use in your script directly or use reference file to write these key-values and read from it.

artist

Replies are listed 'Best First'.
Re: Re: Complex Mapping
by LanceDeeply (Chaplain) on Jun 27, 2003 at 22:16 UTC
    man i love map solutions, but just in case anonomo robert would like to see a map-less version...

    my $order_should_be = 'ACTION,TITLE,WPR_ID,US_RELEASE_DATE,TITLE_TALEN +T,GENRE,FOX_ENTITY,ACQUSITION,PRODUCTION_RELATION,THEATRICAL_RIGHT'; my @should_be_model = split /\,/, $order_should_be; my $file_layout = <DATA>; my @file_layout_keys = split /\,/,$file_layout; while ( my $file_data = <DATA> ) { # build a hash of the file data my %hash; my @file_data_values = split /\,/,$file_data; for (@file_layout_keys) { $hash{$_} = shift @file_data_values; } # print it out in the correct order: foreach (@should_be_model) { # take care of unintialzed data $hash{$_} = '' if ! $hash{$_}; print "$_ => $hash{$_}\n"; } } __DATA__ TITLE,US_RELEASE_DATE,GENRE The Adventures of Buckaroo Banzai Across the 8th Dimension,1984,ACTION Highlander,1986,ACTION The Adventures of Bob & Doug McKenzie: Strange Brew,1983,COMEDY

    also i assumed these are comma separated values. otherwise, what will you do if there are spaces in the title?