sironekotoroの日記

Perl で楽をしたい

Perl入学式 YAPC::2013 の復習 その1

Acme::Nyaa

練習問題

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";
}