$foo{bar}[ blat(\%foo) ] = { a => 'fool' }; #### foo$ bar {} foo%\ blat [] (a => 'fool') {} =; # or, if you feel better binding things a little closer... foo$ bar{} (foo%\ blat)[] (a => 'fool'){} =; #### foo$ x$[] # $foo[$x] #### foo$ x$[] = # $foo = [$x] #### # what is: foo$ x$[] y$[] =; # is it... $foo[$x] = [$y]; # or... $foo = [$x][$y]; # it can't be the second (since that's a syntax error)