― Web Technology and Life ―

複雑なHashRef内の前後の半角SPACEを除去する便利モジュール

2013-09-26
Perlのオレ得モジュールで紹介されていた[Sub::Data::Recursive](http://search.cpan.org/~bayashi/Sub-Data-Recursive-0.01/lib/Sub/Data/Recursive.pm)を使ったクイックハック

エクセルのデータをCSVにされた渡されると、装飾とかの関係上後ろに半角スペースが入ったりするんですが、そういうのうざいですね。

WebのUIだったら、バリデーションとか一緒に整形しちゃうんですが、ちょろちょろ書いている書き殴りのスクリプトだといい感じのなくて、どうしたものかと思っていたんですが、ちょうど先日のYAPC::Asia2013でbayashiさんがLTしていたやつにいい感じのモジュールがあったので、使ってみたら便利だった。(bayashiさんのスライドは何も解説ないけどw)

#!/usr/bin/env perl
use strict;
use warnings;
use utf8;
use Sub::Data::Recursive;

my $hoge = +{
    moge => {
        aa => " fefwfe ",
        bb => " fefwfe",
        cc => "fefwfe ",
    },
    hoge => [
        ' aa ',
        'bb ',
        ' cc',
    ],
};



Sub::Data::Recursive->invoke(
    sub {
        $_[0] =~ s/^\s//;
        $_[0] =~ s/\s$//;
    },
    $hoge,
);

use Data::Dumper;
warn Dumper $hoge;

って書いて、動かすと

$VAR1 = {
          'moge' => {
                      'cc' => 'fefwfe',
                      'aa' => 'fefwfe',
                      'bb' => 'fefwfe'
                    },
          'hoge' => [
                      'aa',
                      'bb',
                      'cc'
                    ]
        };

という感じでなかなかいい感じ。

Sub::Data::Recursive、頭の片隅に入れておくとクイックハックがしやすいですね!bayashiさん++!

Perl update_at : 2013-09-26T17:12:57
hirobanex.netの更新情報の取得
 RSSリーダーで購読する   
blog comments powered by Disqus