看看这段代码错在哪里,FTP命令用不了!

看看这段代码错在哪里,FTP命令用不了!

#! perl -w
use strict;
use IO::Socket qw(EFAULT :crlf);
my $host=shift or die "Usage:1.pl host [port]\n";
my $port=shift || 'echo';
my $socket=IO::Socket::INET->new("$hostport" or die $@;
my $child=fork();
die "Can't fork!" unless defined $child;
if($child){
$SIG{CHLD}=sub {exit 0};
user_to_host($socket);
$socket->shutdown(1);
sleep;
} else {
host_to_user($socket);
warn "Connetion closed by foreign host.\n";
}
sub user_to_host{
my $s=shift;
while(<>{
chomp;
print $s "$_,CRLF";
}
}
sub host_to_user{
my $s=shift;
$/=CRLF;
while(<$s>{
chomp;
print $_,"\n";
}
}
不知道为什么,运行以后能成功出来FTP的欢迎信息,但是在往后输,就产生了死锁,有哪位高手帮帮我这新手,谢谢了!
是问题太简单还是太复杂,还是根本就不值得回答了?
提供ftp地址,方便帮助我的人
ftp://210.82.164.243
ftp://ftp.support.veritas.com
想了想,主要还是没有登录,有高手解答一下的没
大哥,大姐们出来帮忙啊!
http://search.cpan.org/dist/libnet/Net/FTP.pm

不太会写socket的,不过直接用Net::Ftp不是方便些么。
我是新手,刚开始学,一步一步,还没有学到你那了,谢谢你了,现在好人不多了