perl

Re: [1,2,3,4,5] が与えられたとき [[1,2][2,3][3,4][4,5]] を返すような関数を定義せよ

vallog: [1,2,3,4,5] が与えられたとき [[1,2][2,3][3,4][4,5]] を返すような関数を定義せよを Perlで解いてみた。 プログラム こんな感じでしょうか。モジュールは特に使ってないです。素のperlでも もう少しエレガントな回答があるかもしれないですね。 #!…

Term::Encodingのサンプルプログラム

perldoc.jpに翻訳記事を上げるにあたりサンプルプログラムがあった 方がいいんじゃなかろうかと思いましたので、自分が翻訳したものに ついてはサンプルプログラムを書こうかと思います。 訳があっても実例を知らないことには使い方もよくわからないと 思う…

Web::Queryで遊んでみた

http://d.hatena.ne.jp/tokuhirom/20110221/1298244438 id:tokuhirom氏の Web::Queryを使って遊んでみた。 とりあえず DMM.co.jpの動画ダウンロード販売の人気 AV女優トップ 20を取得してみた。 コード こんな感じです。 #!/usr/bin/env perl use strict; us…

App::commandline進捗

とりあえず githubには上げた。 GitHub - syohex/p5-App-commandlinefu: www.commandlinefu.comの Perlクライアント ページ指定、カラー指定はできるようになった。参考にした Rubyのものには タグ指定があるんだけど、ユーザからすると知りづらいからまあい…

perldocで日本語を見る

perldoc.jpの作業に何らか関わろうということで翻訳作業を開始したのですが、 確認作業で perldocで見てみても日本語が 'X'になって読めなかったので、 日本語を見る方法を調べてみた。 perldocの国際化対応 'perldoc perldoc'してみたところ、-Lオプション…

ぷよぷよリゾルバを書いてみた

人材募集企画 2011年版: 人生を書き換える者すらいた。 を見て解いてみた。 ソースはこちらです。syohex/p5-App-puyopuyo · GitHub サンプルコード こんな感じで書けばアニメーションで表示してくれます。 #!/usr/bin/env perl use strict; use warnings; us…

Devel::NYTProfからコールグラフを生成する

ソースコードを追っかけるときにコールグラフが分かっていると便利です。 時間が十分あるのであれば、自分でじっくり追いかけるというのもありかと 思うんですけど、事前にコールフローが分かっている方が、確実に追いかけることができます。 以前作成した G…

MouseX::Getoptのメモ

一文字のオプションと長いオプションを指定したいということが あるかと思うのですが、MouseX::Getoptでどうやるんだろってことで 実際にコードを書いて調べてみました。まあ hasを 2つ作ればいいの かなとか考えたんですけど、Getopt::Longと一緒でよくない…

指定したファイルをメールで送信する

指定したファイルをメールで送りたいって思ったんで書いてみた。 @tokuhirom氏の http://d.hatena.ne.jp/tokuhirom/20100719/1279543292 をベースにしています。SMTPサーバとの認証について調べて、追加しました。 コードは以下のような感じです。 オプショ…

emacsclientでフォーカスを移す

追記 xfce4だとフォーカスを勝手に移してくれます. 最近プログラム関係は Macではなく Ubuntuばっかりなんですが、 emacsclientの使い心地が Macとなにか違う。考えてみると、 フォーカスが移動しないじゃんってことで、なんとかできない ものかと思い書いて…

commandlinefuの APIアクセスに Furlが使えない理由を考える

HTTPの知識が皆無なのでなんとも言えないのですが、 気になったなのでに調べてみた。きっと送るヘッダが違うんだろうと いうことで、それについて調べてみます。 #!/usr/bin/env perl use strict; use warnings; use lib qw(../lib); use Furl; my $url = 'h…

commandline-fuクライアント Perl版

超便利なワンライナーを、コマンドラインで検索できるgemパッケージ「cmdline-fu」 - 元RX-7乗りの適当な日々 で紹介されているプログラムのPerl版を書いてみた。 ここで示されているとおり、写経するんじゃなくて、移植にチャレンジということですね。 機能…

すごく簡単なメール通知機能を書いた。

Ubuntuでなんかいいのないかなって思ったんだけど、いいのが 見つけられなかったのでとりあえず自作で。通知には notify-sendを 使いました。 #!/usr/bin/env perl use strict; use warnings; use AnyEvent; use Config::Pit; use Net::IMAP::Client; use Ge…

Google URL Shortener APIを使う

使ってみたいって思ったのでコードを書いてみる。 cpanから取れるんだろうけど、仕組みを理解したかったので 自分で書いてみた。 はじめに APIキーを取得します。取得は以下の URLから行えます。 https://code.google.com/apis/console/ 次にマニュアルを見…

各種 BSDの manpageを調べる

いろいろな OSの manpage、主にセクション 9、が見る必要があって 今までは sshでマシンに入ってみてたんですけど、面倒になったので w3mで見れるようにしたら、ちょっと遅いけど端末からでもいけるな ってことでそのための Perlスクリプトを書いた. 追記 ap…

Cocoa::Growlで遊ぶ。

モジュールのアップデート書けてたら Growl::Anyがアップデートされてて なんだろって思ったら、Cocoa::Growl対応となっていた。なんじゃそりゃ って思った。調べていると最近できたモジュールらしいです。 詳しいことはhttp://perl-users.jp/articles/adven…

Furlを使ってみた。

tokuhirom氏作成のモジュールFurlを使ってみた。 ニコ動の毎時のランキングを 20個分表示するという単純なもの。 まあこんな単純なものではそこまで影響が出るわけでないので あれですが、LWP::UserAgentのインタフェースみたく使えるから、 LWP::UserAgent…

Zipアーカイバ改良。

Windowsから送られてきた Zipファイルの展開 - Life is very shortで作ったけど、 テストしやすいように書きなおした。ついでにマッチするものだけ展開する オプションを追加。基本的に全部展開でいいと思うんだけど、不要な広告 ファイルはいらね、ってとき…

WWW::Curlを使ってアプリを書いてみた

WWW::Curlを使う練習。もともとは LWP::UserAgentを使っていたんですが、 ちょっとでも早くなったらいいかなと思って書き直した。 ネットワークが一番ボトルネックになるから、そんな大差はない 気がするけど、早めにレスポンスが返るときはより早くなったか…

Perlで Google日本語入力 API 再び

直してみた。JSONモジュールを使うように修正。 Encode::JavaScript::UCSというのがあるのを知った。 Encodeモジュールのサブクラスで大変簡潔に書かれて いるので問題もないことでしょう。 #!/usr/bin/env perl use strict; use warnings; use autodie; use…

Perlで Google 日本語入力 API

http://www.google.com/intl/ja/ime/cgiapi.htmlのやつを Perlから利用してみようと思ったんだけど、Unicodeエスケープされた 文字を JSONモジュールで評価するとうまくいかない。\uというのが uppercaseとして解釈されてしまうせいか、消えてしまいます。 …

否定先読み

正規表現クックブックを読んでたら否定先読みというものを 初めて知りました。これはネタに使えるって思ったんだけど、 今の僕の頭では有効な活用方法が思い浮かばなかった。 #!/usr/bin/env perl use strict; use warnings; use autodie; use Encode; use u…

Windowsから送られてきた Zipファイルの展開

僕は仕事はLinuxで行っているのですが、お客さんは Windowsがほとんどです。 そんなお客さんから Zipファイルが送られてくることがたまにありますが、 それを普通に unzipしてしまうと文字化けしてどれがどのファイルかが よくわかりません。 昔のubuntuだと…

@INCにコードリファレンスを入れる

cpanminusのソースコードを見ているとそんなコードがあった。 どういう目的でこういうことになっているのかは全然わかっていない ですが、@INCにコードリファレンスを入れるとそれが実行される ようである。引数は第一引数が自分自身のコードリファレンス、 …

Pod::Usageのpod2usage関数

とあるモジュールのソースコードを見ていたらヘルプの 表示でpod2usageという関数があったので調べてみた。 ヘルプオプションなんかでヘルプを表示するのってわざわざ 関数書いてしていたりしていたけど、これだと PODで書いた ことがそのまま出せるので手間…

Imager::QRCodeを使ってみた

PODにあるコードそのまま実行してもエラーになるな〜って思って しばらく悩んでいましたけど、Imagerは errstrというメソッドで エラーメッセージが見れるので、それを見たら問題があっという間に 解決されました。 gifで出力できなかったのは私の環境で対応…

LWP::UserAgentのrequestメソッド

requestメソッドを使うとGETで取得した内容をそのままファイルに 落とすことができるんですね。それだけですが。 #!/usr/bin/env perl use strict; use warnings; use File::Basename; use LWP::UserAgent; use HTTP::Response; use Time::HiRes; my $url = …

リハビリその2

ニコニコ動画で動画のタグを取得するコードを書いてみた。 ニコニコAPIなんてものがあったんですね。 #!/usr/bin/env/perl use strict; use warnings; use LWP::UserAgent; use Getopt::Long; use XML::XPath; binmode STDOUT, ":utf8"; my %opt; GetOptions…

リハビリでコードを書いてみた。

病のため全然やる気になれなかったが久しぶりにコードを 書いた。まいどまいど同じようなコードだが、DMMの週刊ランキングを 取得してみた。 #!/usr/bin/env perl use strict; use warnings; use Web::Scraper; use URI; binmode STDOUT, ":utf8"; my $rank_…

AV女優の情報をデータベースに突っ込む

データベースを扱うプログラムの例として, DMM.comからAV女優の 情報を取得して、データベースに突っ込むというコードを書いてみた。 #!/usr/bin/env perl use strict; use warnings; use utf8; use Web::Scraper; use URI; use Time::HiRes; use DBI; binmo…