Hello all,

I was curious if this is possible in Perl 6:

%hash{ 'foo' & 'bar' } = 'some value';
# %hash{'foo'} eq 'some value' and %hash{'bar'} eq 'some value'

or perhaps

%hash{ 'foo' | 'bar' } = 'some value';

In other words, is it possible to assign the same value to multiple hash
keys simultaneously using junctions (or some other new mechanism)? In
Perl 5, I would do

$hash{'foo'} = $hash{'bar'} = 'some value';

which gets tedious with more than one hash key. An alternative is always

@hash{qw(foo bar)} = ('some value') x 2;

which is probably

%hash<foo bar> = ('some value') x 2;

in Perl 6, but you always need to take care to write the correct integer
in the list replication. The best way is, of course, (in Perl 5)

   my @keys = qw(foo bar);
   @ha...@keys} = ('some value') x @keys;

but then you need the @keys array, which needs to be defined if you are
dealing with literal values. Reading the synopses, one possibility seems
to be 

%hash<foo bar> >>= 'some value';

using hyper operators, but is that really the best way?

Ville Koskinen

Reply via email to