use Storable(dclone);$r=0b10111;$c=0b1001111;for$y(0..$r){for$x(0..$c){$l[$x][$y]=0;int(rand(0b111))==0and(do{$l[$x][$y]=1})}}while(1){my(@f)=@{dclone(\@l)};print("\e[2J");for$y(0..$r){for$x(0..$c){$l[$x][$y]?do{print(chr(0b1001111))}:do{print(chr(0b100000))};my($n);for$h(-1..1){for$s(-1..1){$s==0and$h==0and(next);$n+=$l[($x+$s)%$c][($y+$h)%$r];}}$l[$x][$y]==1?do{$n<=1?do{$f[$x][$y]=0}:$n>=4&&do{$f[$x][$y]=0}}:$n==0b11&&do{$f[$x][$y]=1};}print("\n");}@l=@{dclone(\@f);};sleep(1);}