Because at compile-time, when Perl has parsed the
no strict 'refs' part, it realizes it was inside a
*{...} construct, the inside of which can be a block or an expression. Since it expects it to have been an expression, the use of
no raises a compile-time error. To force Perl to realize the interior is a block, the
; is added to the beginning.