我有一个数组,如果数组中存在特定值,我想用特定值替换特定值。
大批
my @array_list = ('TEST12','TEST14','TEST','TEST23');
Run Code Online (Sandbox Code Playgroud)
我尝试过的是:
foreach (@array_list) {
if($_ eq "TEST"){
$_ =~ s/$_/HT/;
}
}
Run Code Online (Sandbox Code Playgroud)
还有其他更好的方法吗?请帮助我
假设您只想对单个精确匹配进行就地替换:
use strict;
use warnings;
my @array_list = ('TEST12','TEST14','TEST','TEST23');
$_ eq 'TEST' and $_ = 'HT' for @array_list;
use Data::Dump;
dd @array_list;
Run Code Online (Sandbox Code Playgroud)
输出:
("TEST12", "TEST14", "HT", "TEST23")
Run Code Online (Sandbox Code Playgroud)
也可以使用正则表达式完成相同的任务:
s/\ATEST\z/HT/ for @array_list;
Run Code Online (Sandbox Code Playgroud)