http://www.perlmonks.org?node_id=479039


in reply to How do I turn a hash into a name=value string?

Not sure I'd call this elegant, but:
my ( %hash ) = split /\s*[=,]\s*/, "apples=green,pears=brown,oranges=o +range"; my ($string) = join(",", (map { my $a = "$_=$hash{$_}" } keys(%hash)) + ); print "[$string]\n";

Replies are listed 'Best First'.
Re^2: How do I turn a hash into a name=value string?
by JediWizard (Deacon) on Jul 28, 2005 at 17:05 UTC

    Out of curiosity: Why are you bothering to assign to a variable inside your map statement?

    I have not tested it, but I am pretty sure if you run with warnings and strict you will be warned the $a is used only once. Beyond that you really should not use $a or $b as they are special variables used for sort.


    They say that time changes things, but you actually have to change them yourself.

    —Andy Warhol

      I tried something elase and first, then decided the above way was better. But you're right, it isn't needed - although I always run with strict and there aren't any warnings.