多年来,我一直断断续续地使用 Perl 进行编程,尽管它只是偶尔作为我的主要语言。因为我经常几个月不写任何 perl,我非常依赖我的折耳骆驼书来提醒我如何做事。然而,当我一字不差地复制食谱时,这让我很困扰。这是最令人烦恼的问题之一:在第 3 版 Camel 的第 154 页上,有一个“modifying strings en passant ”的示例,内容如下:
($lotr = $hobbit) =~ s/Bilbo/Frodo/g;
Q1)这里发生了什么?正则表达式到底是在什么基础上运行的?
Q2) 对于“从 $a 中获取字符串,使用正则表达式对其进行修改,将结果放入 $b”这样的基本操作,这种近乎神奇的语法是否必要?
Q3) 如何使用循环默认变量作为初始字符串来执行此操作?
提前向 Perl 的梦想家们道歉,对于他们来说,上面的内容看起来非常自然。