Perl:从数组中删除具有特殊字符的元素
当数组是设备名或ip地址,但下面的元素名中有ie特殊字符时,我可以从数组中删除元素 善意的建议,因为我已经尝试了2-3种方法,但都不起作用 例如,如果密钥值为network或ip 100.100.100.100,则逻辑正常工作,但当密钥名称为net switch或router net时,它不会删除Perl:从数组中删除具有特殊字符的元素,perl,Perl,当数组是设备名或ip地址,但下面的元素名中有ie特殊字符时,我可以从数组中删除元素 善意的建议,因为我已经尝试了2-3种方法,但都不起作用 例如,如果密钥值为network或ip 100.100.100.100,则逻辑正常工作,但当密钥名称为net switch或router net时,它不会删除 option1 @array = eval { grep { $_ != $Key } @array1; }; Option2 @array = eval{ grep { $_->[0]
option1
@array = eval { grep { $_ != $Key } @array1; };
Option2
@array = eval{ grep { $_->[0] ne "$Key" } @array1; };
2014/06/29 11:14:56 $VAR1 = [
'100.2.2.3-0-2',
'100.4.7.1-0-2',
'100.2.120.2-0-2',
'100.1.2.29-3-2',
'network-0-2',
'switch-1-1',
'network-0-2',
'router45',
];
谢谢
use warnings;
use strict;
my @array = (
'100.2.2.3-0-2',
'100.4.7.1-0-2',
'100.2.120.2-0-2',
'100.1.2.29-3-2',
'network-0-2',
'switch-1-1',
'network-0-2',
'router45',
);
# my $key = '100.2.2.3-0-2'; # Either of these will work
my $key = 'network-0-2';
my @keep;
foreach (@array){
push @keep, $_ unless $_ eq $key;
}
print Dumper \@keep;
=
是数值不相等的
运算符,但由于要测试字符串不相等性,请使用ne
运算符
my @array = grep { $_ ne $Key } @array1;
=
是数值不相等的
运算符,但由于要测试字符串不相等性,请使用ne
运算符
my @array = grep { $_ ne $Key } @array1;
=
是数值不相等的
运算符,但由于要测试字符串不相等性,请使用ne
运算符
my @array = grep { $_ ne $Key } @array1;
=
是数值不相等的
运算符,但由于要测试字符串不相等性,请使用ne
运算符
my @array = grep { $_ ne $Key } @array1;
尝试选项三
@array=grep{$\ne$Key}@array1代码>带有实际$key和@array的可运行脚本会很有帮助。一如既往地使用警告和严格警告;我收到一个错误,无法使用字符串(“网络xyz”)作为数组引用,而在使用的“严格引用”atmpapec@ARRAY包含路由器、交换机名称和网络信息的列表。关键是ip地址、路由器名称和带有特殊字符的名称,我的意思是带破折号。请使用Data::Dumper;打印转储程序\@数组
并提供输出的摘录,以便我们准确地了解数据结构代码>带有实际$key和@array的可运行脚本会很有帮助。一如既往地使用警告和严格警告;我收到一个错误,无法使用字符串(“网络xyz”)作为数组引用,而在使用的“严格引用”atmpapec@ARRAY包含路由器、交换机名称和网络信息的列表。关键是ip地址、路由器名称和带有特殊字符的名称,我的意思是带破折号。请使用Data::Dumper;打印转储程序\@数组并提供输出的摘录,以便我们准确地了解数据结构代码>带有实际$key和@array的可运行脚本会很有帮助。一如既往地使用警告和严格警告;我收到一个错误,无法使用字符串(“网络xyz”)作为数组引用,而在使用的“严格引用”atmpapec@ARRAY包含路由器、交换机名称和网络信息的列表。关键是ip地址、路由器名称和带有特殊字符的名称,我的意思是带破折号。请使用Data::Dumper;打印转储程序\@数组并提供输出的摘录,以便我们准确地了解数据结构代码>带有实际$key和@array的可运行脚本会很有帮助。一如既往地使用警告和严格警告;我收到一个错误,无法使用字符串(“网络xyz”)作为数组引用,而在使用的“严格引用”atmpapec@ARRAY包含路由器、交换机名称和网络信息的列表。关键是ip地址、路由器名称和带有特殊字符的名称,我的意思是带破折号。请使用Data::Dumper;打印转储程序\@数组代码>并提供输出的摘录,以便我们准确地了解数据结构。感谢您的响应。如果我不想打印记录,我可以像foreach(@array){除非$eq$key;push(array1,$key);}一样写入吗?感谢您的响应。如果我不想打印记录,我可以像foreach(@array)一样写入吗{除非$eq$key;push(array1,$key)}谢谢你的回复。如果我不想打印记录,我可以像foreach(@array)一样写吗{除非$eq$key;push(array1,$key)}谢谢你的回复。如果我不想打印记录,我可以像foreach(@array){除非$eq$key;push(array1,$key)}