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.