SlideShare a Scribd company logo
1 of 27
Download to read offline
OKINAWA.PM
Perl でつくったものとか
自己紹介?
清水隆博(アナグラ:@AnaTofuZ)
情報な2年
最近はシステムコールとかプロセスとか
AmazoDushButtonで遊んでます
出来ればHTML,OnsenUI♨とかをしようと思ってます
去年作ったもの
PaizaとかAtcoderとか初めてのPerlの練習問題くらい…
言い訳
いや去年始めたばっかだから…(震え声)
やってみたこと
Perl入学式
言語処理100本ノック(最初の部分)
初めてのPerl
Acmeモジュールで遊ぶ
Amon2を入れようとしてplenvで詰む
DBのクエリ測定用スクリプトの作成
UTF-8で凹む
日本語をsplitする時の処理でまさかの内部コードに変換
ちょっと調べてみた
USE UTF8
なんとなくutf-8使うなら書くんじゃね? と思っていたプ
ラグマ
コードがutf8に書かれてる事を伝えるらい
これを使った上で文字列リテラルを使うと内部表現にな
る
内部表現はLatin-1の文字コード(Perl当初の文字コード?)
であるので化ける
詳しく良く解ってないので教えてくださいm(__)m
-> また本日悩まされた
PLENV
sudoダメ,ゼッタイ.
やってみたいこと
Acmeモジュールの作成
APIの作成
CUIbassのTwitterクライアント作成
->今作った!!
PERLTWITTERCLIENT作成
とりあえずググる
PERLTWITTERCLIENT作成
Net::Twitterが使えそう
作ったコード
#!/usr/bin/env perl
use strict;
use warnings;
use utf8;
use Encode;
binmode STDOUT,":utf8";
use Net::Twitter;
my $consumerKey = ;
my $consumerSecret = "";
my $accessToken = "";
my $accessTokenSecret = "";
my $nt = Net::Twitter ->new({
traits => [qw/OAuth API::RESTv1_1/],
consumer_key => $consumerKey,
製作時間20分(サンプルがあったので)
最初のエラー
すると
Conflict detected: Role Net::Twitter::Role::API::Search excludes role 'Net::Twitt
Class::MOP::Class::create_anon_class('Moose::Meta::Class=HASH(0x7fa79926c980)
Net::Twitter::_create_anon_class('ARRAY(0x7fa79bce6218)', 'ARRAY(0x7fa79b
Net::Twitter::new('Net::Twitter', 'HASH(0x7fa798829158)') called at p
どうもcon ict起きてるらしい
変更してツイート
ツイートする箇所はこの様な感じ
while (<STDIN>) {
chomp;
&tweet($_);
}
sub tweet {
my ($msg) = @_;
my $ret = $nt->update({status=>$msg});
print "Cannot post!!" unless $ret;
}
ツイート
日本語でツイート
UTF-8!!!!
デコードするように変更
use Encode;
sub tweet {
my ($msg) = @_;
$msg = decode_utf8($msg); <- 追加!!
my $ret = $nt->update({status=>$msg});
print "Cannot post!!" unless $ret;
}
ツイートしてみる
MENTIONを取得もできたsub replay {
my $res = $nt->mentions();
for my $mention (@$res){
my $mentionText = $mention->{text};
my $mentionUser = $mention->{user}->{screen_name};
my $mentionID = $mention->{user}->{name};
printf(" %s %s %s n",$mentionID,$mentionUser,$mentionText);
}
}
調べてみてわからなかったこと
GETリクエストとかのAPI作成の知識(そもそもAPIと
は…?)
最新のPerlの書き方(ファイルハンドルはレキシカル変数
にした方がいいとか)
正規表現
UTF-8 (相変わらず)
おわり

More Related Content

What's hot

LTSの準備をチョットやってみた。lxcチョット触ってみた
LTSの準備をチョットやってみた。lxcチョット触ってみた LTSの準備をチョットやってみた。lxcチョット触ってみた
LTSの準備をチョットやってみた。lxcチョット触ってみた Naoki Matsumoto
 
PEP8を読んでみよう
PEP8を読んでみようPEP8を読んでみよう
PEP8を読んでみよう2bo 2bo
 
Pythonスタートアップ勉強会201109 python入門
Pythonスタートアップ勉強会201109 python入門Pythonスタートアップ勉強会201109 python入門
Pythonスタートアップ勉強会201109 python入門Takayuki Shimizukawa
 
PHP でファイルシステムを作ろう
PHP でファイルシステムを作ろうPHP でファイルシステムを作ろう
PHP でファイルシステムを作ろうshinjiigarashi
 
JumperT16でDonkeyCarを操作する。
JumperT16でDonkeyCarを操作する。JumperT16でDonkeyCarを操作する。
JumperT16でDonkeyCarを操作する。Masanori Miyamoto
 

What's hot (6)

LTSの準備をチョットやってみた。lxcチョット触ってみた
LTSの準備をチョットやってみた。lxcチョット触ってみた LTSの準備をチョットやってみた。lxcチョット触ってみた
LTSの準備をチョットやってみた。lxcチョット触ってみた
 
PEP8を読んでみよう
PEP8を読んでみようPEP8を読んでみよう
PEP8を読んでみよう
 
Pythonスタートアップ勉強会201109 python入門
Pythonスタートアップ勉強会201109 python入門Pythonスタートアップ勉強会201109 python入門
Pythonスタートアップ勉強会201109 python入門
 
PHP でファイルシステムを作ろう
PHP でファイルシステムを作ろうPHP でファイルシステムを作ろう
PHP でファイルシステムを作ろう
 
JumperT16でDonkeyCarを操作する。
JumperT16でDonkeyCarを操作する。JumperT16でDonkeyCarを操作する。
JumperT16でDonkeyCarを操作する。
 
Play1 to Play2
Play1 to Play2Play1 to Play2
Play1 to Play2
 

Viewers also liked

JSON, JSON::PP, and more
JSON, JSON::PP, and moreJSON, JSON::PP, and more
JSON, JSON::PP, and morecharsbar
 
CPANの依存モジュールをもう少し正しく検出したい
CPANの依存モジュールをもう少し正しく検出したいCPANの依存モジュールをもう少し正しく検出したい
CPANの依存モジュールをもう少し正しく検出したいcharsbar
 
2016年のPerl (Long version)
2016年のPerl (Long version)2016年のPerl (Long version)
2016年のPerl (Long version)charsbar
 
Json(::PP) is a-changing
Json(::PP) is a-changingJson(::PP) is a-changing
Json(::PP) is a-changingcharsbar
 
Ranking system by Elasticsearch
Ranking system by ElasticsearchRanking system by Elasticsearch
Ranking system by ElasticsearchKazuhiro Osawa
 
2017年春のPerl
2017年春のPerl2017年春のPerl
2017年春のPerlcharsbar
 
H2O x mrubyで人はどれだけ幸せになれるのか
H2O x mrubyで人はどれだけ幸せになれるのかH2O x mrubyで人はどれだけ幸せになれるのか
H2O x mrubyで人はどれだけ幸せになれるのかIchito Nagata
 

Viewers also liked (7)

JSON, JSON::PP, and more
JSON, JSON::PP, and moreJSON, JSON::PP, and more
JSON, JSON::PP, and more
 
CPANの依存モジュールをもう少し正しく検出したい
CPANの依存モジュールをもう少し正しく検出したいCPANの依存モジュールをもう少し正しく検出したい
CPANの依存モジュールをもう少し正しく検出したい
 
2016年のPerl (Long version)
2016年のPerl (Long version)2016年のPerl (Long version)
2016年のPerl (Long version)
 
Json(::PP) is a-changing
Json(::PP) is a-changingJson(::PP) is a-changing
Json(::PP) is a-changing
 
Ranking system by Elasticsearch
Ranking system by ElasticsearchRanking system by Elasticsearch
Ranking system by Elasticsearch
 
2017年春のPerl
2017年春のPerl2017年春のPerl
2017年春のPerl
 
H2O x mrubyで人はどれだけ幸せになれるのか
H2O x mrubyで人はどれだけ幸せになれるのかH2O x mrubyで人はどれだけ幸せになれるのか
H2O x mrubyで人はどれだけ幸せになれるのか
 

Recently uploaded

SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 

Recently uploaded (9)

SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 

Perlでつくったものとか