Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

Re: A brain twister? (how to make 2 lines->1)

by muba (Priest)
on Jun 25, 2012 at 02:08 UTC ( #978103=note: print w/ replies, xml ) Need Help??


in reply to A brain twister? (how to make 2 lines->1)

I assume this is along the lines of what you were looking for?

use strict; use warnings; my %ahash=(one=>1, two=>2, three=>3, foo=>'$foo'); print join(", ", map { "'$_' => '$ahash{$_}'"} keys %ahash ), "\n"; __END__ 'three' => '3', 'one' => '1', 'foo' => '$foo', 'two' => '2'

Addendum: I've chosen to use single quotes for the output rather than double quotes, for the simple reason of keeping the output more or less copy/pastable (of course, copypastability gets lost as soon as a value is actually a reference, but if that is an issue I recommend something like Data::Dumper to you). Consider this template:

use strict; use warnings; my %ahash = ( # PASTE HASH CONTENTS BELOW ); print "'$_' => '$ahash{$_}', " for keys %ahash;
And you were to put in the output of my above script, it'd nicely print 'three' => '3', 'one' => '1', 'foo' => '$foo', 'two' => '2', . Had I used double quotes for the output of the original script and pasted its result into the template, I would've gotten some bothersome errors.
Global symbol "$foo" requires explicit package name at G:\x.pl line 6. Execution of G:\x.pl aborted due to compilation errors.

Why are array so much easier to print out than hashes...geez...
I beg to differ. Just remember to read elements in pairs.
use strict; use warnings; my %ahash=(one=>1, two=>2, three=>3); print join(", ", %ahash); __END__ three, 3, one, 1, two, 2


Comment on Re: A brain twister? (how to make 2 lines->1)
Select or Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://978103]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (9)
As of 2014-07-11 00:32 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    When choosing user names for websites, I prefer to use:








    Results (217 votes), past polls