The subscript separator for multidimensional array emulation. If you refer to a hash element as
$foo{$x,$y,$z}
it really means
$foo{join($;, $x, $y, $z)}
But don't put
@foo{$x,$y,$z} # a slice--note the @
which means
($foo{$x},$foo{$y},$foo{$z})
Default is "\034", the same as SUBSEP in awk. If your keys contain binary data there might not be any safe value for $;
.
Consider using "real" multidimensional arrays as described in perllol.
Mnemonic: comma (the syntactic subscript separator) is a semi-semicolon.