Perl入学式 YAPC::2013 の復習 その1
Acme::Nyaa
- 実行するたびに結果が違う。芸が細かい。YAPC::2013当日は気づかなかった。
初CPAN登録、猫系PerlモジュールAcme::Nyaa作りました。 - ちなみに作者の方は、YAPC::ASIA 2013 のPerl入学式でボッチだった自分のテーブルにきて、気さくに話しかけてくれたんでいい人です。
練習問題
nyaa.pl を改良して, 端末から文字を入力した文字列を猫が話しているような文字列に変換してください STDIN chomp
<
#! /usr/bin/env perl use strict; use warnings; use Acme::Nyaa; my $kijitora = Acme::Nyaa->new; # my $nekotext = '猫がかわいい。'; # print $kijitora->cat( \$nekotext ); my $input = <STDIN>; chomp $input; print $kijitora->cat( \$input) ."\n";
ハッシュの中の配列 or ハッシュリファレンスの中の配列でいつもつまづく
昨日もそうだったが今日もつまづいた。今のところの鬼門といえる。
ハッシュリファレンスの中に配列のリファレンス入れるとかもう泣ける。
fizzbuzz.pl
1 から max (起動時に定める)において, 数字が3で割り切れるならFizz, 5で割り切れるならBuzz, 両方で割り切れるならFizzBuzz とする ハッシュリファレンスを使って, Fizz, Buzz, FizzBuzz をキーとして, 数値を分類してください 出力は Data::Dumper を使ってください <
use strict; use warnings; use Data::Dumper; my $hash; # for my $number(1..30){ for my $number(1.."@ARGV"){ if ($number % 15 == 0){ print "fizzbuzz\n"; push @{$hash->{fizzbuzz}} , $number; }elsif($number % 5 == 0){ print "buzz\n"; push @{$hash->{buzz}} , $number; }elsif($number % 3 == 0){ print "fizz\n"; push @{$hash->{fizz}} , $number; }else{ print "$number\n"; } } print Dumper $hash;
WebService::Simple
- Windowsでperl書いてたときはインストールに失敗しまくって、ほんとにつらかった。 けど、すんなりインストール成功。ありがとうOSX!
- WebService::Simple と途中のSが大文字なので気をつけよう
Youtube API と WenService::Simple つかってyoutube検索
use Data::Dumper; use WebService::Simple; my $service = WebService::Simple->new( base_url => 'http://gdata.youtube.com/feeds/api/videos', response_parser => 'JSON' ); my $res = $service->get( { q => 'YAPC::Asia', alt => 'json' } ); my $ref = $res->parse_response(); # print Dumper $ref; # 動画のURLを出力する。 for my $entry ( @{ $ref->{feed}->{entry} } ) { my $url = $entry->{link}->[0]->{href}; my $title = $entry->{'media$group'}->{'media$title'}->{'$t'}; print "$title : $url\n"; }