There's not really anything to decide. Putting an array inside quotes returns a scalar with the array contents, so if $foo == [ 'a', 'b' ], then "@$foo" == "ab". The regexp searches that string for the answer, so if the answer given was "b", what were essentially doing is "ab" ~= /b/i. This will match, and the correct grade counter is incremented.