从数组中删除项目并在之后将其折叠

时间:2013-07-10 23:11:01

标签: arrays perl

使用Perl,我有一个IP地址数组,我将其存储在一个数组中。对阵列中的元素执行了许多操作,其中一个操作是删除IP地址。我知道我可以使用delete函数,但这会在数组中留下空白点。是否有一种功能/方法可以从数组中删除一个项目并折叠/移动元素,这样就没有空白点。

例如,假设数组中有10个元素。我们删除了第3个元素。然后只有9个元素,第4个元素成为第3个元素,第5个元素成为第4个元素等等。

感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

假设我们有一个10元素阵列:

my @arr = (0..9);

然后我们要删除元素3,或者偏移2:

my $third_element = splice @arr, 2, 1;

@arr现在为0,1,3,4,5,6,7,8,9。

答案 1 :(得分:0)

MAP!这是我最喜欢的perl功能之一..

my @out = map { 
$_ #some logic ? $_ : (); #<-- this is your reference variable do stuff here
} @in;