mchampag has asked for the wisdom of the Perl Monks concerning the following question:

Hi. When I run the following program:

#!/opt/local/bin/perl use strict; use YAML::XS; my %microphones = ( d6 => 'Audix D6', d2 => 'Audix D2', c414 => 'AKG C-414XLS', 4011 => 'Danish Pro Audio (DPA) 4011', 4003 => 'Danish Pro Audio (DPA) 4003', re20 => 'Electro-Voice RE20', km184 => 'Neumann SKM184', mkh20 => 'Sennheiser MKH20', md441 => 'Sennheiser MD441 U', sm57 => 'Shure SM57LC', beta56 => 'Shure Beta 56A', sm81 => 'Shure SM81', ); my %preamplifiers = ( hv3c => "Millennia Media HV-3C", hv3d => "Millennia Media HV-3D", rnp => "FMR Audio Really Nice Preamp RNP8380", 737 => "Avalon Design VT-737SP", ); print Dump(%microphones, %preamplifiers);

I expect to get something like

--- hash-name key: value key: value key: value --- hash-name key: value key: value key: value (etc.)

Instead, I get:

--- sm81 --- Shure SM81 --- d2 --- Audix D2 --- km184 --- Neumann SKM184 --- '4011' --- Danish Pro Audio (DPA) 4011 --- sm57 --- Shure SM57LC --- mkh20 --- Sennheiser MKH20 --- c414 --- AKG C-414XLS --- beta56 --- Shure Beta 56A --- md441 --- Sennheiser MD441 U --- d6 --- Audix D6 --- '4003' --- Danish Pro Audio (DPA) 4003 --- re20 --- Electro-Voice RE20 --- '737' --- Avalon Design VT-737SP --- hv3c --- Millennia Media HV-3C --- rnp --- FMR Audio Really Nice Preamp RNP8380 --- hv3d --- Millennia Media HV-3D

Can anyone illuminate me, a poor wretch? Thank you!

-Matt

Replies are listed 'Best First'.
Re: I'm a YAML noob
by zwon (Abbot) on Nov 09, 2009 at 22:08 UTC
    print Dump(\%microphones, \%preamplifiers);

      Wonderful. Thank you, zwon!

      -Matt

Re: I'm a YAML noob
by ikegami (Patriarch) on Nov 09, 2009 at 22:42 UTC
    To explain, hashes return their content (k,v,k,v,...) in list context, so your code was identical to
    print Dump( d6 => 'Audix D6', d2 => 'Audix D2', c414 => 'AKG C-414XLS' +, 4011 => 'Danish Pro Audio (DPA) 4011', 4003 => 'Danish Pro Audio (D +PA) 4003', re20 => 'Electro-Voice RE20', km184 => 'Neumann SKM184', m +kh20 => 'Sennheiser MKH20', md441 => 'Sennheiser MD441 U', sm57 => 'S +hure SM57LC', beta56 => 'Shure Beta 56A', sm81 => 'Shure SM81', hv3c +=> "Millennia Media HV-3C", hv3d => "Millennia Media HV-3D", rnp => " +FMR Audio Really Nice Preamp RNP8380", 737 => "Avalon Design VT-737SP +" );