One should perhaps add, that the real reason why this magic works is because "=~" binds more thightly than "=", so the regex gets done first and then its results are evaluated in list-context (which is provided by using an array as an L-value).

CountZero

"If you have four groups working on a compiler, you'll get a 4-pass compiler." - Conway's Law