m_shige1979のときどきITブログ

プログラムの勉強をしながら学習したことや経験したことをぼそぼそと書いていきます

Github(変なおっさんの顔でるので気をつけてね)

https://github.com/mshige1979

Mojoliciousの学習「RSSより一覧を表示」

前回

f:id:m_shige1979:20130929132953j:plain

今回

f:id:m_shige1979:20131014121603j:plain

やったこと

外部モジュール使用

XML::Feed
XML::FeedPP
※結構依存モジュールがあるので注意する

外部ファイルの使用
m-shige1979@mshige1979-virtual-machine:~/sample_mojo1$ tree
.
--- app.psgi
--- cpanfile
--- lib
--- public
    --- css
    --- --- app.css
    --- --- bootstrap-theme.min.css
    --- --- bootstrap.min.css
    --- --- docs.css
    --- --- pygments-manni.css
    --- fonts
    --- --- glyphicons-halflings-regular.eot
    --- --- glyphicons-halflings-regular.svg
    --- --- glyphicons-halflings-regular.ttf
    --- --- glyphicons-halflings-regular.woff
    --- js
        --- app.js
        --- bootstrap.min.js
        --- html5shiv.js
        --- jquery-1.10.2.min.map
        --- jquery.js
        --- respond.min.js

※app.psgiと同じディレクトリに「public」ディレクトリを作成すればそこが公開ディレクトリになるのでそこにjsやcssのファイルを配置する

リスト配列を使用して一覧表示
    # rssを取得
    my $rss_url = "http://b.hatena.ne.jp/entrylist/it?sort=hot&threshold=&mode=rss";
    my $feed = XML::FeedPP->new($rss_url, utf8_flag => 1)
      or die XML::Feed->errstr;

    # リストに格納
    for my $entry($feed->get_item()){

        push @$rss_list, {
            title => ( $entry->title),
            url => $entry->link,
            count => $entry->get("hatena:bookmarkcount")
        }
    }

※原因はよくわかっていないが「utf8_flag => 1」を指定しないとタイトルなどが文字化けしてしまった。あとでエンコードしようとしても文字化けしたけどなんか悪かったのかな?

つまったこと

なんかモジュールがインストールできない

とりあえず、以下のものを追加したらできた

sudo apt-get install libxml2-dev