in reply to Transform hash elements into a string

Update: Well I've been chastised for perhaps reading more into the question than there really is - to answer the OP's question: $param_string =~ s/,\s*$//; will delete the trailing ','. This part: named parameter call in a method. lead me astray into thinking that OP is passing parms into a method or sub say like the Tk library needs or whatever. Maybe that is not true. Ok, fair enough.

Not exactly sure about what you are doing, but normally these hash => value pairs are passed as essentially an array of paired values - this is not a string. Don't confuse what the source code looks like with what the subroutine or method sees. To get $new-role-name to be translated into a value instead of this literal string, you just need "" instead of '' in the hash. Oh, this '=>' thingie is called a "fat comma" and as you can see below that is pretty much what happens, ie. works like a comma.

#!/usr/bin/perl -w use strict; my %hash = ( 'description' => '$description', 'new-role-name' => '$new-role-name', 'role-name' => '$role-name', ); x(%hash); #this makes param,value pairs from %hash print "\n"; my $abc = 99999; x("value" => 12, "xyz" => "$abc"); sub x { my @input = @_; print "array representation: @input\n"; my %hash = @_; print "hash is:\n"; foreach (keys %hash) { print "$_ => $hash{$_}\n"; } } __END__ prints: array representation: role-name $role-name new-role-name $new-role-nam +e description $description hash is: new-role-name => $new-role-name role-name => $role-name description => $description array representation: value 12 xyz 99999 hash is: value => 12 xyz => 99999