$_="1 2 3\n4 5 6\n7 8 9\n";$m="XOXOXOXOX"; {print;<>=~/^\d$/until$&&&s/$&/$p=chop$m/e; /^($p.){3}|($p.{5}){2}$p|^.(...$p){3}|($p.{7}){2}$p/ms||$m&&redo} y/0-9/-/,print