% perl -MO=Deparse movies > movies1
% vi movies1
% cat movies1
$_ = qq[(\$w,\$h)=split/x/,shift||"19x20";
\$q=10+10*\$w;
\$r=20+10*\$h;
\@m=((31,(15\n )x(\$w-1))x\$h,(31)x\$w);
\$m[\$c]|=16,!(\@a=grep!(\$m[\$c+\$\$_[0]]&16+\$|*\$\$_[1]),\n [- 1,8],[1,1],[\$w,4],[-\$w,2])?\$c=pop\@p:\${(\$i,\$j)=\@{\$a[rand\@a]};
\$m[\$c]&=~\n 8/\$j;
push\@p,\$c;
\$m[\$c+=\$i]&=~\$j;
++\$u-\$h*\$w+\$h||map\$_&=15,\@m,splice(\@p),\$c\n =\$|=1}until\$|&\$c+2>\$w*\$h;
\$C=\$q-4*int\$q/4;
\$A=(\$q+\$C)*\$r;
\$u=pack"x"x((\$q+\$\n C)*\$r);
subZd{my(\$f,\$g,\$h,\$i,\$e)=\@_;
\@a=sort{"000\$a"<=>"000\$b"}\$h,\$i||\$h;
f\n or(\$a[0]..\$a[1]){\$s=(\$r-\$_)*(\$q+\$C)+\$f;
vec(\$u,\$_,8)=\$e||2for\$s..\$s+\$g-1}\n };
subZt{\$a=shift;
\$x=10*(\$a%\$w);
\$y=10*(2+int\$a/\$w)};
dZ9,\$q-20,10;
dZ9,\$q-2\n 0,\$r-10;
dZ9,1,10,\$r-10;
dZ\$q-11,1,10,\$r-10;
map{t\$_;
if(\$_%\$w){\$m[\$_]&2?d\$x\n -1,11,\$y:"";
\$m[\$_]&8?d\$x+9,1,\$y-10,\$y:"";
}}0..-1+\$w*\$h;
\$F="LIST";
open(FH\n ,">al.avi");
binmodeZFH;
selectZFH;
printZpack"L*",/\\d/?\$_:unpack"L*",\$_Zfo\n r"RIFF",(1256+(\$A+24)*(\$B=3+scalar\@p)),"AVIZ\$F",1216,"hdrlavih",56,50000\n 0,32,0,2064,\$B,0,1,\$A,\$q,\$r,(0)x4,\$F,1140,"strlstrh",56,"vids",(0)x4,1,1\n 0,0,\$B,\$A,-1,(0)x3,"strf",1064,40,\$q,\$r,pack("SS",1,8),0,\$A,(0)x4,pack((\n "H"x1024),"f","f","f",0,"a"),\$F,(4+(\$A+8)*\$B),"movi";
map{printZSTDOUTZ++\n \$G,\$/;
t\$z||1;
\$l=\$x;
\$t=\$y;
t\$_;
\$ri=\$x;
if(\$l>\$x){\$ri=\$l;
\$l=\$x}d\$l+2,5+\$ri-\$\n l,(\$t<\$y?\$t:\$y)-7,(\$t<\$y?\$y:\$t)-3,1;
\$z=\$_;
print"00db".pack("L",\$A).\$u}\@p\n ,(-1+\$w*\$h)x3;
print"idx1".pack"L",16*\$B;
\$o=4;
for(1..\$B){print"00db".pack\n "LLL",16,\$o,\$A;
\$o+=\$A+8}];
s[((?{$a.=$+})\s?(\S*)\s?)*][$a =~ s/Z/ /g; $a; ]see;
####
s[((?{$a.=$+})\s?(\S*)\s?)*][$a =~ s/Z/ /g; $a; ]see;
##
##
% perl -MO=Deparse movies | sed s/see/se\;print/ | perl | sed s/\;/\;\\n/g
($w,$h)=split/x/,shift||"19x20";
$q=10+10*$w;
$r=20+10*$h;
@m=((31,(15)x($w-1))x$h,(31)x$w);
$m[$c]|=16,!(@a=grep!($m[$c+$$_[0]]&16+$|*$$_[1]),[-1,8],[1,1],[$w,4],[-$w,2])?$c=pop@p:${($i,$j)=@{$a[rand@a]};
$m[$c]&=~8/$j;
push@p,$c;
$m[$c+=$i]&=~$j;
++$u-$h*$w+$h||map$_&=15,@m,splice(@p),$c=$|=1}until$|&$c+2>$w*$h;
$C=$q-4*int$q/4;
$A=($q+$C)*$r;
$u=pack"x"x(($q+$C)*$r);
sub d{my($f,$g,$h,$i,$e)=@_;
@a=sort{"000$a"<=>"000$b"}$h,$i||$h;
for($a[0]..$a[1]){$s=($r-$_)*($q+$C)+$f;
vec($u,$_,8)=$e||2for$s..$s+$g-1}};
sub t{$a=shift;
$x=10*($a%$w);
$y=10*(2+int$a/$w)};
d 9,$q-20,10;
d 9,$q-20,$r-10;
d 9,1,10,$r-10;
d $q-11,1,10,$r-10;
map{t$_;
if($_%$w){$m[$_]&2?d$x-1,11,$y:"";
$m[$_]&8?d$x+9,1,$y-10,$y:"";
}}0..-1+$w*$h;
$F="LIST";
open(FH,">al.avi");
binmode FH;
select FH;
print pack"L*",/\d/?$_:unpack"L*",$_ for"RIFF",(1256+($A+24)*($B=3+scalar@p)),"AVI $F",1216,"hdrlavih",56,500000,32,0,2064,$B,0,1,$A,$q,$r,(0)x4,$F,1140,"strlstrh",56,"vids",(0)x4,1,10,0,$B,$A,-1,(0)x3,"strf",1064,40,$q,$r,pack("SS",1,8),0,$A,(0)x4,pack(("H"x1024),"f","f","f",0,"a"),$F,(4+($A+8)*$B),"movi";
map{print STDOUT ++$G,$/;
t$z||1;
$l=$x;
$t=$y;
t$_;
$ri=$x;
if($l>$x){$ri=$l;
$l=$x}d$l+2,5+$ri-$l,($t<$y?$t:$y)-7,($t<$y?$y:$t)-3,1;
$z=$_;
print"00db".pack("L",$A).$u}@p,(-1+$w*$h)x3;
print"idx1".pack"L",16*$B;
$o=4;
for(1..$B){print"00db".pack"LLL",16,$o,$A;
$o+=$A+8}