Hello Tigor,
I was under the impression that you want also to calculate the average or the values e.g. (see bellow):
#!/usr/bin/perl use strict; use warnings; use IO::All; use Data::Dumper; use List::Util qw(sum); sub mean { return sum(@_)/@_; } my @lines = io('in.txt')->chomp->slurp; splice @lines, 0, 1; # remove first line my %hash; foreach my $line (@lines) { $line =~ s/^\s+//; my @elements = split /\s+/, $line; my $reference = splice @elements, 0, 1; $hash{$reference} = mean(@elements); } print Dumper \%hash; __END__ $ perl test.pl $VAR1 = { 'Pineapple' => '25', 'Apple' => '47.25', 'orange' => '22.5' };
If not you can simply do this (see bellow):
#!/usr/bin/perl use strict; use warnings; use IO::All; use Data::Dumper; my @lines = io('in.txt')->chomp->slurp; splice @lines, 0, 1; # remove first line my %hash; foreach my $line (@lines) { $line =~ s/^\s+//; my @elements = split /\s+/, $line; $hash{splice @elements, 0, 1} = \@elements; } print Dumper \%hash; __END__ $ perl test.pl $VAR1 = { 'Pineapple' => [ '10', '20', '30', '40' ], 'orange' => [ '12', '25', '24', '29' ], 'Apple' => [ '40', '45', '50', '54' ] };
I hope this helps, BR.
In reply to Re: Adding text file data to hashes and array
by thanos1983
in thread Adding text file data to hashes and array
by Tigor
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |