in reply to Re^6: Merge hashes in specific format
in thread Merge hashes in specific format

That's wrong. You are clearly declaring it inside the loop.

Cheers Rolf
(addicted to the Perl Programming Language :)
Wikisyntax for the Monastery FootballPerl is like chess, only without the dice

Replies are listed 'Best First'.
Re^8: Merge hashes in specific format
by ovedpo15 (Pilgrim) on Jan 12, 2019 at 23:25 UTC
    Why that is wrong? The full sub looks as following:
    my ($name,$dirs,$final_href) = @_; my %data; foreach my $dir (@{$dirs}) { decode($dir."/".$name,%data); # will change name my $final_href = ( data => { ( %{$final_href->{data} },%{ $data{data} } ) }, total => do { my %total; for my $href ( $final_href->{total}, $data{total} ) { $total{$_} += $href->{total}{$_} for keys %{ $href +->{total} }; } \%total; } );
    Is it impossible to somehow ignore that warning? In other words, make it copy $data{total} for the first iteration?
      Try googling and understanding "Perl declaration"

      Cheers Rolf
      (addicted to the Perl Programming Language :)
      Wikisyntax for the Monastery FootballPerl is like chess, only without the dice

        I do understand why it does not work (it tries to enter into a non-declared element). I just asking what would be the best way to solve it. I can always add non-existing data to $files_href when I declare it but it does not feel right. Anyway, thank you.