# generate board and regex subs j(split shift@!,pop@!); a(split shift@!,pop@!); push(@!,split shift@!,pop@!); $_=$a; map{s/\n//g}@!; map{s/ //g}@!; # start main loop &p;