请问怎样在perl下实现自动FTP登录?不使用模块[已解决]

请问怎样在perl下实现自动FTP登录?不使用模块[已解决]

如果使用模块,则对客户机就有了限制,因此,我不能使用ftp模块。

我尝试了好几种方法,最后用一种最笨的方法,就是用print语句一行行地将命令写入到一个shell脚本,然后用system命令去执行,如下:
#system "ftp -n $my_ftp_host ;user $my_ftp_user; bin ;prompt;cd $my_ftp_dir; put $my_ftp_file; bye";
#`ftp -n \< open $my_ftp_host \< user $my_ftp_user $my_ftp_password\< bin \< prompt \< cd $my_ftp_dir \< put $my_ftp_file \< bye`;
system "rm -rf $my_dir/ftp.sh";
open MY_FTP, ">> $my_dir/ftp.sh";
print MY_FTP "#!/bin/ksh \n";
print MY_FTP "ftp -n<<EOF \n";
print MY_FTP "open $my_ftp_host \n";
print MY_FTP "user $my_ftp_user $my_ftp_password \n";
print MY_FTP "bin \n";
print MY_FTP "prompt \n";
print MY_FTP "lcd $my_ftp_dir \n";
print MY_FTP "cd $my_ftp_upload_dir \n";
print MY_FTP "put $my_ftp_file \n";
print MY_FTP "bye \n";
print MY_FTP "EOF \n";
close MY_FTP;
system "chmod u+x $my_dir/ftp.sh";
system "$my_dir/ftp.sh";

但是这种方法太痛苦了,而且如果我是telnet到远程主机,想要从远程主机ftp回到我本机的话,这样做就不行了,因此我需要有更好的方法。

请各位指点一下,有没有更好的方法去实现perl下的自动ftp登录?

生成的SHELL脚本如下,有没有办法用system语句一次性执行完这些命令?
#!/bin/ksh
ftp -n<<EOF
open 3.3.3.1
user 123 123
bin
prompt
lcd /opt/SUNWexplo/output/
cd upload
put explorer.33bd5136.solaris01-2008.10.10.14.07.tar.gz
bye
EOF

谢谢!

perl 里面貌似也有 here document.
我试过用:
system "ftp ,-n $my_ftp_host,user $my_ftp_user,bin ,prompt,lcd $my_ftp_dir,cd $my_ftp_upload_dir, put $my_ftp_file, bye";

也是不行,提示说:
usage: ftp [-adfginpstvx] [-m mech] [-T timeout] [hostname [port]]
使用这条语句,可以实现自动FTP,不需要FTP模块了:
system "ftp -n \<\<EOF \n open $my_ftp_host \n user $my_ftp_user $my_ftp_password \n bin \n prompt \n lcd $my_ftp_dir \n cd $my_ftp_upload_dir \n put $my_ftp_file \n bye \n\<\<EOF;";

用\n模拟换行符,这样就实现了跟SHELL脚本一样的功能。