in reply to Add values to subroutine inside of a loop.

You seem to want to expand all of the hash refs. in the  $added array ref. into an anonymous hash, but the keys are the same in all the  $added hash referents. So, e.g., each  'link' key's value will simply overwrite the preceding value until the last such key, and likewise for all the  'name' keys.

c:\@Work\Perl\monks>perl -wMstrict -MData::Dump -le "my $added = [ { link => '/var/www/docs', name => 'mydocs', }, { link => '/var/www/read', name => 'letters', } ]; ;; my @keys = qw(link name); ;; my $hashref = { map { my $k = $_; map { $k => $_->{$k} } @$added } @keys, }; ;; dd $hashref; " { "link" => "/var/www/read", name => "letters" }
What do you really want to do here?


Give a man a fish:  <%-{-{-{-<

Replies are listed 'Best First'.
Re^2: Add values to subroutine inside of a loop.
by Anonymous Monk on Jul 02, 2018 at 18:28 UTC
    Yes, it overwrites the last key,value, but this is what I am trying to accomplish:
    $success = sent( { to => 'send_to', account => 'to_account', name => 'name', subject => 'subject', title => 'title', link => "/var/www/docs", name => "mydocs", link => "/var/www/read", name => "letters", type => 'docs', });
      link => "/var/www/docs", name => "mydocs", link => "/var/www/read", name => "letters",

      That is not possible, because hash keys must be unique, so there can only be one key link and one key name in each hash. However, a hash value can be a reference to an array or another hash, which can hold multiple values - for example, the data structure $added shown in the OP could be a hash value. But which data structure is best here depends very much on the sent function, which you haven't shown us. Is this a function you've written yourself, or is it from an existing module? What data format does that function expect?