如何从散列值中删除所有换行符?
我试图从一个哈希值删除所有换行符(\n
):如何从散列值中删除所有换行符?
my %var_h = ( "ID" => " This is Test
This is new line TEST
newline Test end ");
我怎样才能把的%var_h
值所有新线?
我试过s/\\n//g
但我无法让它工作。
s:\n::g for values %var_h;
应该做的伎俩。
你在做什么替代?你似乎要修复只值,所以我会用values
关键字:
for my $value (values %var_h) {
$value =~ s/\n//g;
}
的替代(在OP的要求)是使用地图和一个片,虽然我觉得少了很多明确的:
@var_h{keys %var_h} = map { s/\n//g } values %var_h;
带散列值.. – joe 2009-06-29 15:18:47
有没有其他方法可以做到这一点 – joe 2009-06-29 15:19:23
我添加了第二种方法。但是你是否想要一个不使用`values`的方法? – Telemachus 2009-06-29 15:34:10
所有其他解决方案从所有散列值中删除\ n。
我不确定这是否是必需的。
所以仅从这一个值,你必须删除:
$var_h{'ID'} =~ s/\r?\n//g;
技术上S/\ n // g ^应该是足够的,但我有加\ r的习惯吗?在它之前,所以它也会处理Windows风格的新行。
我现在看到你的问题是当你不想成为的时候你正在逃避'\ n'。 (除非这是一个错字。) – Telemachus 2009-06-29 20:17:14