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


in reply to Hashes are fun!

It looks like the @h{m,n,o} is using , as a regex delimiter (sneaky). It broke when trying to reformat for legibility.

%h = ( m=>1, n=>2, o=>3, ); # yields bareword error on 'o'; @h{ m, n, o } = ( 4, 5, 6 ); # yields m4n5o6 @h{ 'm', 'n', 'o' } = ( 4, 5, 6 ); # both yield m1n2o3 @h{ m,n,o } = ( 4, 5, 6 ); @h{ m|n|o } = ( 4, 5, 6 );

The hash slice is using a regex on nothing (undefined value). Of course there's no match so no new key can be generated and existing key values aren't changed.