SlideShare una empresa de Scribd logo
1 de 27
Descargar para leer sin conexión
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 (相変わらず)
おわり

Más contenido relacionado

La actualidad más candente (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
 

Destacado (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で人はどれだけ幸せになれるのか
 

Último

Último (11)

知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 

Perlでつくったものとか