+ -
当前位置:首页 → 问答吧 → map的用法

map的用法

时间:2011-06-17

来源:互联网

Hi,

请教大家一下关于map的用法。

我有一个数组,里面的每个元素都是这样的格式:

country.citya    B.123.234.456  this is test for city1a
country.cityb    B.124.345.423  this is test for cityb



我想使用map函数得到一个包含citya和cityb的数组,请教大家怎么实现?
谢谢!

作者: yang200218   发布时间: 2011-06-17

你是要过滤的吧?那该用 grep

@result = grep /country.city[ab]/, @list

作者: zhlong8   发布时间: 2011-06-17



QUOTE:
你是要过滤的吧?那该用 grep

@result = grep /country.city[ab]/, @list
zhlong8 发表于 2011-06-17 12:35



楼主的情况如果每行都是这样的格式,那么用map得到的结果也是一样的

如果文件有10行,其中6行符合匹配,那么grep会按照过滤条件得到正确的元素个数存在@result中。
但是map,就肯定会得到10个元素,即使其中的4个是不符合要求的。

To zhlong8,
我总是用grep过滤,用map来处理并生成对应的新的元素。
不知道map和grep还有什么显著的不同吗?

作者: py   发布时间: 2011-06-17



QUOTE:
楼主的情况如果每行都是这样的格式,那么用map得到的结果也是一样的

如果文件有10行,其中6行符合匹 ...
py 发表于 2011-06-17 13:01




    map 是进行操作然后返回一个 list,grep 只是判断只要为真返回原来的元素。所以 map 对每个元素都会生成新值即使是 map $_, LIST 也会复制,而 grep 返回的是原来的值。别的就不清楚了

作者: zhlong8   发布时间: 2011-06-17

回复 zhlong8


    这样做是会等到一个跟原来一下的数组,但是我想要等到citya,cityb的数组

作者: yang200218   发布时间: 2011-06-17



QUOTE:
回复  zhlong8


    这样做是会等到一个跟原来一下的数组,但是我想要等到citya,cityb的数组
yang200218 发表于 2011-06-17 13:34




    能不能详细描述下你的数据,和你所指的 citya cityb

作者: zhlong8   发布时间: 2011-06-17