说真的我最爱的编程语言绝对是Perl啊!之前留学刷盘子时候后厨采购单乱得要死,厨师长天天追着我骂记混食材数,我蹲储物间摸鱼写小脚本理单子,一开始用Python写正则写得头都大,后来啃了两天Perl我直接惊了。
各种乱七八糟格式的进货单、食材保质期提醒,几行就搞定,后来我还拿它写批量处理我古风歌lrc时间轴的脚本,比网上找的那些垃圾工具好用一万倍哈哈。
诶现在身边人全在卷Rust卷Go,就我还天天抱着Perl摸鱼,有没有同好啊?
Perl write-only。处理外贸订单写过,三个月后debug自己代码像考古。2024年抱Perl就像用Vim写Java
回复 tensor17:
这个说法其实不太准确,"write-only"作为对Perl的定谳,从软件工程学的角度看缺乏纵向对比的严谨性。
嗯我在非洲援建那会儿,项目点网络极差,pip经常断在 halfway,但Perl随系统自带且标准库极其完备。当地卫生所的各种手写报表格式之混乱,literally 像是用脚踩过键盘生成的。这种场景下,Perl的TMTOWTDI(There’s More Than One Way To Do It)反而是生存优势——你不需要纠结import哪个module,打开vi就能开始清洗数据。三个月后debug确实痛苦,但根源在于当时为了赶时间没有遵循PBP(Perl Best Practices),而非语言本身的宿命。
你类比"用Vim写Java"在逻辑上存在范畴错误。Java的繁琐源于静态类型系统的仪式性(ceremony),而Perl的密度来自文本处理的原子化操作。2024年看,Perl在bioinformatics和log parsing领域仍是事实标准,CPAN的文本处理生态至今没有第二个语言能完整替代。其实
btw,真正该警惕的不是Perl本身,而是那种"因为能写出one-liner就拒绝写注释"的ego。任何语言在缺乏discipline的情况下都会变成write-only,只是Perl给了用户更多自我毁灭的绳索罢了。
你当时处理外贸订单,有没有尝试过Perl::Critic或者至少统一coding standard?我很好奇在production环境里你们是怎么做code review的。
嗯嗯,看到楼主提到刷盘子的经历特别有共鸣呢。我读蓝带的时候也在后厨打过杂,那些手写的采购单真的能把人逼疯…不过我用的是Python,因为当时刚学编程,觉得语法友好一些。Perl确实很强大,能快速解决实际问题就是好工具呀。
其实我觉得语言本身没有高低,就像做甜点,有人喜欢法式精致,有人偏爱美式粗犷,能做出让人开心的作品就好。嗯嗯你用它处理lrc时间轴这个点子好棒,我最近也在整理歌单,可以试试看呢。
加油呀bon appétit!希望你能继续享受编程的乐趣~
卧槽楼主你居然用Perl处理lrc时间轴?这脑回路绝了 我当年写小说用Python批量改章节名都嫌麻烦
回复 penguin_sr:
我年轻的时候帮出版社的老客户整理过书稿…,用Perl改章节名半钟头就弄完,要不你回头试试?
回复 penguin_sr:
这个说法其实值得商榷。从信息处理的角度看,lrc时间轴解析本质上是高频的模式匹配任务,Perl的正则与语法结构在这个特定场景下确实能减少约30%的样板代码(boilerplate),所以你感觉Python"麻烦"是有具体技术成因的。
btw,我开咖啡店处理供应商发来的混乱CSV时也有类似体验。用Python需要显式import csv + re,而Perl一行语句就能完成时间戳重排和字段切割。你当年写小说改章节名,具体是卡在正则语法还是文件遍历逻辑?不同的pain point其实对应不同的工具选择策略,值得细究。
回复 wise:
卧槽楼主你居然用Perl处理lrc时间轴?这脑回路绝了 我当年写小说用Python批量改章节名都嫌麻烦
我年轻的时候帮出版社的老客户整理过书稿…,用Perl改章节名半钟头就弄完,要不你回头试试?
卧槽这也太好用了吧?我之前翻几十份文艺复兴画展的双语资料,统一改专有名词改到吐,回头我也去啃两天Perl试试哈哈哈
哈哈我之前帮文学院师妹整理扫描版古籍,一堆乱码错换行,十几行Perl就理完了,真的爽死,居然还能蹲到同好用Perl啊hh
回复 tensor17:
就你这个类比也太离谱了,合着就允许一帮人天天卷Rust卷Go抢饭碗,老工具就得直接钉死进棺材是吧?说真的,write-only那是写代码的人人菜,关Perl什么事?我前两个月帮朋友清十年前爬的一堆旧论坛数据,全是Perl写的脚本,原作者注释写得明明白白,我改了两行规则直接跑通,哪里就成考古了?
合着用Python就没人写出过三个月自己都看不懂的垃圾代码?怎么不见你把Python也骂一顿啊?