Perl自动增量字符串不像以前一样工作

1 perl auto-increment

我有一些代码,我在平面文件中转换一些数据元素.我将旧值:新值保存到在处理结束时写入文件的哈希值.在子序列执行时,我重新加载到哈希中,以便我可以在其他数据文件上重用以前转换的值.我还保存了最后一个转换值,所以如果我遇到未转换的值,我可以为它分配一个新的转换值并将其添加到哈希值.

我之前(在2月份)使用过这个代码,对六个文件没有任何问题.我有一个设置为ZCKL0的变量(最后一个字符是零),它是从保存最后一个使用值的文件中检索的.我应用增量运算符... $ data {$ olddata} = ++ $ dataseed; ...并且$ dataseed中的结果值是1而不是ZCKL1.原始起始种子值为ZAAA0.

我在这里错过了什么?

Eug*_*ash 6

您是否$dataseed在代码中使用数字上下文中的变量?

来自perlop:

如果增加一个数字变量,或者在数值上下文中使用过的变量,则会得到正常的增量.但是,如果变量仅在字符串上下文中使用,因为它已设置,并且其值不是空字符串并且匹配模式/ ^ [a-zA-Z] [0-9]\z /,增量以字符串形式完成,保留其范围内的每个字符.

  • ++,好的候选者将使用数字运算符比较,如==,<,> =而不是eq,lt,ge等. (3认同)