in reply to Getting the hash in this format

The string (if it is a string) that you want seems to be in a format very similar to JSON (see also JSON on Wikipedia). You may even be able to parameterize the JSON methods to eliminate the characters you don't (seem) to need, the curlies and double-quotes, without needing a separate  tr/// step. Using a module like JSON means that you have immediate support if and when you need to deal with a more complex structure.

c:\@Work\Perl>perl -wMstrict -le "use JSON; use List::MoreUtils qw(zip); ;; use Data::Dump; ;; my @array1 = qw(red blue green); my @array2 = qw(black orange white); my $hashref = { zip @array1, @array2 }; dd $hashref; ;; my $j_str = encode_json $hashref; print qq{fresh: '$j_str'}; ;; $j_str =~ tr/{}\"//d; print qq{stripped: '$j_str'}; " { blue => "orange", green => "white", red => "black" } fresh: '{"green":"white","blue":"orange","red":"black"}' stripped: 'green:white,blue:orange,red:black'

Replies are listed 'Best First'.
Re^2: Getting the hash in this format
by davido (Cardinal) on Aug 23, 2014 at 17:23 UTC

    When I see someone asking questions about how to piece together a data representation that looks almost like JSON, I start wondering if perhaps this person actually does want JSON and just doesn't realize that's what it's called.

    This happened recently when someone was asking how to decode a string that looked almost like JSON. Turned out it started out as JSON but in his attempt to mold it into a Perlish structure, he had stripped away parts of the JSON syntax/punctuation. So the question may have been about how to turn Y (his format) into Z (Perl), but the actual problem he was taking on was how to turn X (json) into Z (Perl data structure).


    Dave

      ... how to decode a string that looked almost like JSON ... it started out as JSON ... had stripped away parts of the JSON syntax ...

      IOW, perhaps a classic XY Problem, or in this case maybe a JXP Problem!