まめこタイトルからの卒業

| 3 Comments | 0 TrackBacks | このエントリーをはてなブックマークに追加 このエントリーのはてなブックマーク件数

4時間の格闘から戻ったPerl初心者のまめこです。えいやっ!

WebService::Simpleを使ってFlickrのタイトルを取得してみました。
12時から始めて今やっと動いた・・・。ぜーはーぜーはー。

コードはこちら。

#!/usr/local/bin/perl

use strict;
use Encode;
use WebService::Simple;
use Perl6::Say;
use Data::Dumper;

my $apikey = $ARGV[0] || "you apikey";
my $user = "userid"; #スクリーンネームじゃない方。73611000\@N00とか。

my $flickr = WebService::Simple->new(
        base_url => "http://api.flickr.com/services/",
        param   => { apikey => $apikey, }
);

my $response = $flickr->get(
        'feeds/photos_public.gne',{id=>$user}
);

my $ref = $response->parse_response;

foreach my $key ( keys %{ $ref->{entry} } ){
        my $item = $ref->{entry}{$key};
        say $item->{title};
}


苦戦の歴史

苦戦したのは全部。

ユーザーの指定が出来ずphotos_publicの新着ばかり表示させてました。正解はこうだったのね(´・ω・`)ハッシュリファレンスというらしいです。

 'feeds/photos_public.gne',{id=>$user}

をずっと

 'feeds/photos_public.gne',id=>$user,

て書いてました。教えてくれたyusukebeさんありがとう!

foreach内のあたりが一番の苦戦どころでtomyheroに教えてもらいました。ありがたやー!

foreach my $key ( keys %{ $ref->{entry} } ){

keysが何かは良く分かってません。これから覚えるよ!$xx->{xxx}の方はなんとなく覚えました!

titleを表示させたかったのにずっとcontentを表示させてて、ダンプして格納されている内容を何度も読んでやっとこ指定先すら違うことが判明。

動いたので泣きました。祝福してくれた方ありがとう!(´;ω;`)

追記 080601 15:55

otsuneさんがコメント&はてブコメントで教えてくれた方法で書いたらもっとスマートになりました!
my $user = "userid"; #まめの
my $user = q{userid}; #直した方

これだと引数に@とか入っててもエスケープしなくて済むんですね!

foreach my $key ( keys %{ $ref->{entry} } ){
        my $item = $ref->{entry}{$key};
        say $item->{title};
}


はkeysじゃなくてveluesを使うと1行短くなりました。

foreach my $item ( values %{ $ref->{entry} } ){
        say $item->{title};
}


valuesはどこから?と思ったのだけれど、ダンプするとvaluesってところに格納されてるから「values」の中のごにょごにょ。という書き方をしているのかなーと予測してみる。

otsuneさんありがとうござまーす!

余談

  • 03:37 (woopsdez) ねむい・・・
  • 03:37 (woopsdez) けど
  • 03:37 (woopsdez) あと少しだから・・・
  • 03:37 (woopsdez) が ば る
  • 03:38 がんばれ~~
  • 03:38 (woopsdez) (´;ω;`)
  • 03:38 (woopsdez) ありがとう!
  • 03:38 タイトルもってくるの?
  • 03:38 (woopsdez) そうなのれす
  • 03:38 タイトル好きだなw
  • 03:38 (woopsdez) www
  • 03:38 (woopsdez) 大好き!
  • 03:38 意味わからねぇw
  • 03:38 wwww
  • 03:38 www
  • 03:38 w

タイトルばかり取得していたらIRCでこんな流れになったのでまめこは今日限りタイトルを卒業します。あおーげーばー♪とーおーとしーぃ。

次はFlickrで検索して写真を表示させるらしいですよ! CGIですって!

でも、それはまた次のお話・・・。

No TrackBacks

TrackBack URL: http://perl-mongers.org/MT/mt-tb.cgi/37

3 Comments

foreach my $key ( keys %{ $ref->{entry} } ){
my $item = $ref->{entry}{$key};
say $item->{title};
}


for my $item (value %{ $ref->{entry} }) {
say $item->{title};
}

で良くね?

おおおお! otsuneさんの教えてくれた方法で動きました!
追記しときます!

Leave a comment

About this Entry

This page contains a single entry by woopsdez published on June 1, 2008 4:55 AM.

Mooseに入門してみたよ was the previous entry in this blog.

ドキュメントを書こう! is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.

Categories

Pages

Creative Commons License
This blog is licensed under a Creative Commons License.
Powered by Movable Type 4.2rc1-en