perlで配列の空白を除去する
perlで配列内の空白を除去して配列内の要素を詰めたい場合はgrepを使う。
@file = grep { !/^\s*$/ } @file;
これは自作の設定ファイルから適切な行だけ抜き出したいときに使える。
127.0.0.1 # ローカルホスト 127.0.0.2 #127.0.0.3 127.0.0.4 127.0.0.7
例えば上記の設定ファイルから
127.0.0.1 127.0.0.2 127.0.0.4 127.0.0.7
を取り出したいときは、以下のようにする。
# 改行を削除する @file = map { chomp($_); $_ } @file; # コメント以降を削除する @file = map { $_ =~ s/\#.*//g; $_ } @file; # 末尾の空白を削除する @file = map { $_ =~ s/\s+$//g; $_ } @file; # 空白行を除去する @file = grep { !/^\s*$/ } @file;