perl – 修改$_时可能出错?

当以下代码可能有副作用?
@some = map { s/xxx/y/; $_ } @some;

perlcritic解释它是危险的,因为例如:

@other = map { s/xxx/y/; $_ } @some;

并且@some的成员也被修改了.了解.我有BPB书,它通过示例显示了上面的内容

@pm_files_without_pl_files
         = grep { s/.pm\z/.pl/xms && !-e } @pm_files;

我还阅读了“列表处理副作用”一章/“绝不修改列表函数中的$_”.及其粉丝.我也知道/ r.

要明确(尽管我可怕的英语很可能):

在第一个例子中,重点是修改原始的@some.

问题是:

>第一个例子@some = map {s / xxx / y /; $_} @some;引起一些不必要的副作用?如果是,何时?
>或者只是“没有推荐”的方式(否则无害)?

正在寻找答案,因为一些“perl初学者的书” – 因此仍然不接受任何当前的答案.

相关文章

1. 如何去重 #!/usr/bin/perl use strict; my %hash; while(...
最近写了一个perl脚本,实现的功能是将表格中其中两列的数据...
表的数据字典格式如下:如果手动写MySQL建表语句,确认麻烦,...
巡检类工作经常会出具日报,最近在原有日报的基础上又新增了...
在实际生产环境中,常常需要从后台日志中截取报文,报文的形...
最近写的一个perl程序,通过关键词匹配统计其出现的频率,让...