寻找连接到安全的ftp站点(使用perl),并下载所有.log文件,保存在我下载文件之后命名的新目录中。我想在没有模块的情况下这样做,作为一种学习经验,但在我开始之前,我想知道你们是否认为这样做,或者对于一个相对较新的程序员来说太过分了,我应该只学习模块吗?
答案 0 :(得分:11)
如果是生产工作,不,请使用模块。您的实现将是错误的,缺少功能,并且下一个维护该代码的人不知道。
否则,是的。学习网络协议的原理是很好的。我确实对FTP有所保留,因为它有点巴洛克式,不安全,低效并且正在出路。 scp,HTTP或rsync对于投入精力更有用。
我从reading the RFC开始,只使用网络套接字将您自己的FTP模块放在一起。记录并测试它,就像您将要发布到CPAN一样,作为制作网络模块的完整学习练习。针对某些不同的FTP服务器实现运行它,因为它们通常以不同的方式解释规范(或根本不解释)。不要害怕作弊并看看现有模块的作用。谁知道,你可能会写出比现有更好的东西。
答案 1 :(得分:5)
学习校长,就像我们在学校进行长时间的乘法和除法一样,意味着当我们用短手时我们知道事情是如何运作的。
然而,当新来的时候,就像你学会说话一样,你做了“A is for Apple”等,你没有得到关于语法技巧的解释,所有这些,你学会了表达自己足够的理解。
编程有点像。在理想的世界中,您可以轻易地认为预先编写的通用库通常不如特定目标的例程集效率低。如果您使用的车轮已经发明,那么制作一个新车轮似乎需要做很多工作。
所以,使用轮子和齿轮,一旦你真正掌握它,现在看看发明你自己更有效的。
答案 2 :(得分:1)
Ad cpan模块:
所以,学习perl基础知识,研究一些模块(例如Net :: SFTP),如果你还想编写自己的解决方案 - 这取决于你。 :)