use strict; use warnings; my @products = ( {id => 'jam', quantity => 10}, {id => 'cream', quantity => 4}, ); mySub (user => 'Flibble', map {$_->{id} => $_->{quantity}} @products ); print "\n"; mySub (user => 'Flibble', (map {$_->{id} => $_->{quantity}} @products)); sub mySub { my %params = @_; print "$_: $params{$_}\n" for keys %params; } #### cream: 4 user: Flibble jam: 10 cream: 4 user: Flibble jam: 10