将数组中的“NULL”字符串更改为数组perl中的undef

时间:2013-02-06 14:58:54

标签: arrays perl

我正在从一个数据文件构建一个数组,该数据文件用作缓存SQL语句的参数列表。这适用于针对Oracle数据库运行的perl DBI。

例如:

@params = ("This", "that", "NULL", "finish");

我需要将其更改为:

@params = ("This", "that", undef, "finish");

我已经google了这个,并且建议用字符串替换s ///地图。我不知道如何为给定条件取消数组中的元素。

3 个答案:

答案 0 :(得分:6)

for (@params) { $_ = undef if $_ eq 'NULL'; }

答案 1 :(得分:5)

@params = map { $_ eq 'NULL' ? undef : $_ } ("This", "that", "NULL", "finish");应该这样做。

答案 2 :(得分:1)

这可以非常简单地在for提供的列表上使用grep循环完成:

undef $_ for grep $_ eq 'NULL', @params;