我試圖從一個哈希值刪除所有換行符(\n
):如何從散列值中刪除所有換行符?
my %var_h = ( "ID" => " This is Test
This is new line TEST
newline Test end ");
我怎樣才能把的%var_h
值所有新線?
我試過s/\\n//g
但我無法讓它工作。
我試圖從一個哈希值刪除所有換行符(\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