note
eyepopslikeamosquito
<P>
For Perl up to and including 5.10, calling [doc://split] in scalar or void context had the side-effect of setting <C>@_</C>.
This mis-feature was removed in Perl 5.12.
That was great news for most Perl programmers because this side-effect "feature" was unnecessary, an ugly wart.
It was sad news for golfers though because side-effects are frequently useful in golf.
In fact, I recently experienced a similar [doc://split] annoyance in [id://1000179], as described in the <I>"Fun with split"</I> section in that node.
</P>
<P>
Simply changing <C>@_</C> to <C>@z</C> say should fix [thospel]'s original solution at the cost of three strokes:
<CODE>
$_=$`.$_.$'.<>;@z=split//;${/[@z[map{$i-($i="@-")%9+$_,9*$_+$i%9,9*$_%26+$i-$i%27+$i%9-$i%3}0..8]]/o||do$0}for/0/||print..9
</CODE>
I expect you could do better than that, though I haven't tried.
</P>
649734
1012832