sub f{for$w(keys%k){&t}}$/=$_;($,,$w=$a,%k)=splice@ARGV,0,3;socket S,2,1,6;bind S,&a;sub i{$k{$w}=1}sub a{$w=~/:/;pack'CxnC4x8',2,$',split'\.',$`}sub t{socket X,2,1,6;if(connect X,a){print X "$, $_[0] $_[1]/$_[2]";close}else{delete$k{$w}}} listen S,5;while(@ARGV&&($_="$, $a f".shift)||accept(C,S)&&($_=)&&close){ m!(\S*) ([e-i])([^/]*)/!s&&$,eq$`&&&$2($w=$1,$3,$')}sub e{open F,'>',$3;print F $';close}sub g{open(F,'<',$3)&&t$a,"e$3", ;close F}sub h{t$_,i for keys%k} #### sub f{ for$w(keys%k){&t} } $/=$_; ($,,$w=$a,%k)=splice@ARGV,0,3; socket S,2,1,6; bind S,&a; sub i{ $k{$w}=1 } sub a{ $w=~/:/; pack'CxnC4x8',2,$',split'\.',$` } sub t{ socket X,2,1,6; if(connect X,a){ print X "$, $_[0] $_[1]/$_[2]"; close }else{ delete$k{$w} } } listen S,5; while(@ARGV&&($_="$, $a f".shift)||accept(C,S)&&($_=)&&close){ m!(\S*) ([e-i])([^/]*)/!s&&$,eq$`&&&$2($w=$1,$3,$') } sub e{ open F,'>',$3; print F $'; close } sub g{ open(F,'<',$3)&&t$a,"e$3", ; close F } sub h{ t$_,i for keys%k } #### sub f{for$w(keys%k){&t}}$/=$_;($,,$w=$a,%k)=splice@ARGV,0,3;socket S,2,1,6;bind S,&a;sub i{$k{$w}=1}sub a{$w=~/:/;pack'CxnC4x8',2,$',split'\.',$`}sub t{socket X,2,1,6;connect(X,a)?print(X "$, $_[0] $_[1]/$_[2]")&&close:delete$k{$w}}listen S,5;while(@ARGV&&($_="$, $a f".shift)||accept(C,S)&&($_=)&&close){sub h{t$_,i for keys%k}m!(\S*) ([e-i])([^/]*)/!s&&$,eq$`&&&$2($w=$1,$3,$')}sub e{open F,'>',$3;print F $';close}sub g{open(F,'<',$3)&&t$a,"e$3",;close F} }