为什么存在 perl 字符串自动递增魔术行为?
Why does perl string auto-increment magic behavior exist?
在 perl 中,当满足各种特定条件时,字符串 "aa" 可以自动递增成为 "ab"。 PHP 具有类似的行为,并引用了 Perl,我认为这意味着早期使用的是 Perl。
为什么首先要将魔术行为添加到 Perl 中?
这里有一个示例讨论:Increment (++) and decrement (--) strings in Perl 其中指出 perl 文档没有给出基本原理。
这就是我的问题:创建字符串自动递增 "magic" 行为的最初理由是什么?
第二次编辑:这与自动生成无关。在研究我的基本原理问题的可能答案时,我误解了我正在阅读的内容。感谢 ThisSuitIsBlackNot 指出这一点,感谢 choroba 询问我的意思。
我完全同意该功能很有用,只要有合理的借口,我就会使用它,主要是作为唯一非数字 tags/keys 的生成器。我仍然想知道是否有它最初针对的特定理由或用例。我们可能永远不会知道!
也许可以让 split 的模拟变得简单?
我建议它就在那里 因为它很有用,而且它并不比简单的整数递增更神奇
我不知道真相,但我可以想象,在开发 Perl 时,程序员遇到了将 ++
应用于仅包含一个标量变量时该怎么做的问题细绳。而且,有人认为最好实现字符串递增
,而不是引发异常
编程中的许多 事物 正是以这种方式排序的,有人——也许是 Larry——认为将这种功能构建到语言中是个好主意。这种设施在您需要它之前可能看起来一文不值,但在您需要它之后它就是无价之宝。您想自己编写代码并覆盖 ++
运算符吗?
我发现它非常有用,而且我想我每年使用它多达十几次,都是出于不同的原因。我试图搜索我的软件存档,但很难通过字符串匹配找到它!
Why was the magic behavior added to Perl in the first place?
因为有用。至少,它可以用来创建非数字的唯一 ID。
The most likely explanation that I can find is to support autovivication.
一般来说,它与自动生成或引用之间没有任何关系。
That is, it's relatively common to auto-increment a generated hash key.
当然,如果使用字符串 ++
创建唯一 ID,您可以使用哈希按 ID 查找。
在 perl 中,当满足各种特定条件时,字符串 "aa" 可以自动递增成为 "ab"。 PHP 具有类似的行为,并引用了 Perl,我认为这意味着早期使用的是 Perl。
为什么首先要将魔术行为添加到 Perl 中?
这里有一个示例讨论:Increment (++) and decrement (--) strings in Perl 其中指出 perl 文档没有给出基本原理。
这就是我的问题:创建字符串自动递增 "magic" 行为的最初理由是什么?
第二次编辑:这与自动生成无关。在研究我的基本原理问题的可能答案时,我误解了我正在阅读的内容。感谢 ThisSuitIsBlackNot 指出这一点,感谢 choroba 询问我的意思。
我完全同意该功能很有用,只要有合理的借口,我就会使用它,主要是作为唯一非数字 tags/keys 的生成器。我仍然想知道是否有它最初针对的特定理由或用例。我们可能永远不会知道!
也许可以让 split 的模拟变得简单?
我建议它就在那里 因为它很有用,而且它并不比简单的整数递增更神奇
我不知道真相,但我可以想象,在开发 Perl 时,程序员遇到了将 ++
应用于仅包含一个标量变量时该怎么做的问题细绳。而且,有人认为最好实现字符串递增
编程中的许多 事物 正是以这种方式排序的,有人——也许是 Larry——认为将这种功能构建到语言中是个好主意。这种设施在您需要它之前可能看起来一文不值,但在您需要它之后它就是无价之宝。您想自己编写代码并覆盖 ++
运算符吗?
我发现它非常有用,而且我想我每年使用它多达十几次,都是出于不同的原因。我试图搜索我的软件存档,但很难通过字符串匹配找到它!
Why was the magic behavior added to Perl in the first place?
因为有用。至少,它可以用来创建非数字的唯一 ID。
The most likely explanation that I can find is to support autovivication.
一般来说,它与自动生成或引用之间没有任何关系。
That is, it's relatively common to auto-increment a generated hash key.
当然,如果使用字符串 ++
创建唯一 ID,您可以使用哈希按 ID 查找。