in reply to Re^7: Adding text file data to hashes and array
in thread Adding text file data to hashes and array

Thanks for the information

I want to be myself clear while explaining the desired output that i am looking for .So i am writing it in step by step process

Step 1:I have a text file which contains data as below

Name Jan Feb Mar apr apple A 30 40 50 60 Orange O 40 20 30 60

Step 2:Now,I want the output in below format

{'apple-A'=>[30,40,50,60], 'Orange-O'=>[40,20,30,60]}

Step 3:Once the output above is achieved average needs to be calculated for individual fruit by taking output of step 2 as input

step 4:Now the output should look as below after calculating the average from step 2 output

{'apple-A'=>[45], 'Orange-O'=>[37.5] }

i would be more happy to provide information if anything required from my end

Replies are listed 'Best First'.
Re^9: Adding text file data to hashes and array
by hippo (Archbishop) on Feb 15, 2019 at 11:58 UTC

    Here is one method for obtaining the output you require in step 2. I have taken you at your word about the precise format of input and output.

    use strict; use warnings; use Test::More tests => 1; my $want = q#{'apple-A'=>[30,40,50,60], 'Orange-O'=>[40,20,30,60]}#; my @records; # Discard header <DATA>; # Loop over data for (<DATA>) { chomp; s/^\s+//; push @records, sprintf q#'%s-%s'=>[%i,%i,%i,%i]#, split / +/, $_; } # Join them my $have = join (",\n ", @records); # Enclose it $have = "{$have}"; # Test it is $have, $want; __DATA__ Name Jan Feb Mar apr apple A 30 40 50 60 Orange O 40 20 30 60

      Hi Hippo actually i want my output in below format

      {'apple-A'=>[30,40,50,60], 'Orange-O'=>[40,20,30,60]}