我叫 MikeCamel,我是一名 Perl 黑客。
好了,我说出来了。这是第一步。
我在 IRC、Twitter 以及世界上几乎所有其他地方的用户名都是“MikeCamel”。这是因为,在过去,当没有聊天应用程序时——实际上根本没有应用程序——我当时在一个技术“聊天室”里,而“Mike”这个名字已经被占用了。我环顾四周,我桌子上第一个注意到的东西是 骆驼书,O'Reilly Perl 圣经。
我现在拥有第二版,但这是第一版。昨天,我碰巧拿起第二版,也就是真正厚的那一本,给视频会议通话中的某人看,上面有一层薄薄的灰尘。我有点惭愧,但也松了一口气。
多年来,我一直是一名系统管理员。只是零零碎碎地,时不时地。没什么大不了的,你明白的——主要是我的系统,我朋友的系统。有时我会管理其他人拥有的系统——甚至在工作中。我总是能控制住它,而且我总是能够抽身而退。有整整几周——好吧,几天——我根本没有管理任何系统。除了远程系统,感觉有些不同,不知为何不那么严肃。
反思起来,将事情推向边缘的是 Perl。那是 90 年代——确切地说是 1990 年代——当时 Perl 还很年轻、自由,甚至没有假装是面向对象的。我们都知道它仍然不是,但那些年轻人——他们喜欢假装,而我们这些老家伙,好吧,我们陪他们玩玩。
关于 Perl,它只是从小处开始,这里一个正则表达式,那里一个文本文件行计数器。没有什么不能在 Bash 或 Sed 或 Awk 中轻松管理的。但是一旦你写了几个脚本,你就进去了——就没有回头路了。长期的 Perl 用户记得我们是如何开始的,我们看到新手也走着同样的路。
我自学 Perl 是为了从五个不同的 FoxPro 数据库中整理静态网页。我的方法是从骆驼书的开头开始阅读,尽可能多地阅读,直到我的大脑开始疼痛,然后在前面几页重新开始并继续阅读。然后编写一些 Perl 代码,这些代码总是失败,主要是因为一开始缺少分号,然后是因为我真的不太了解我在做什么。但我坚持了下来,直到我不只是编写脚本来整理数据库,而是编写脚本将数据加载到单个数据库中,并使用 CGI 实时提供页面。我的妻子知道,我的一些同事也知道,但我不认为他们完全理解我陷得有多深。
当您开始寻找可以用 Perl 自动执行的管理员任务时,您就知道 Perl 控制了您。那些不需要自动化,并且如果您手动执行会快得多的任务。当您开始在网络上搜索三到四个字符的命令时,这些命令在执行时可以并行地按字母顺序排列、拼写检查和解密三个单独的文件,并将它们输出到 STDERR,ROT13 编码。
我很幸运:我及时逃脱了。我总是坚持注释我的 Perl 代码。我从未读完骆驼书的结尾。至少在一次阅读中没有。我从未尝试过更黑暗的副作用;每行三到四个单独的操作对我来说总是足够了。随着时间的推移,随着我的职责更多地转向编程,我减少了系统管理任务。当然,这并没有完全停止 Perl 的使用——令人惊讶的是,您可以找到多少借口来自动化任务,以及 Perl 有多经常是答案。但这将我的 Perl 使用量降低到可管理的水平,这些水平不会影响我的日常运作。
我想假装我已经停止了,但你永远无法真正放弃 Perl,而 Perl 也永远不会放弃你。我的骆驼书(第二版)仍然在我身边,即使它有点积灰。我总是检查核心模块是否安装在我运行的任何系统上。大约五个月前,我发现我 10 岁的女儿有一些数学作业可以用暴力破解。只需几行代码。几个循环。仅此而已。没有什么我觉得超出范围的。在她交上结果后,我发现它没有产生正确的结果,但我并不介意。它很紧凑、优雅、漂亮。它是 Perl。我的 Perl。
20 条评论