perl

日本Perl改造計画 とほほの Perl編 その1

みなさんは Perlを勉強し始めた人のブログエントリーを見てこんなことを 思ったことはないでしょうか ? 「なんでこんな古臭いコードを書いているんだ」 私は結構有ります。3引数の openでなかったり、ベアワードが大量に 使われていたり、myが使われていなか…

Emacsで Perlのドキュメントを見る

Emacsで Perlのドキュメントを見る方法について. plcmp-cmd-show-doc, plcmp-cmd-show-doc-at-point perl-completion.el + anythingを使っている場合はこれがベスト だと思います。perl-completionで補完の情報を anythingを絞り込めると いうものです. Ctrl…

Image::Term256Colorで遊んでみた

Colin Kennedy / Image-Term256Color - search.cpan.org moshen/Image-Term256Color · GitHub githubにあるデモがクールだったので何か面白いことができない かなと思って試してみた。 コード モジュールを使ったのではなく、付属のアプリの img2termという…

画像をタイル状に並べる。

画像をタイル状に並べたいなと思っていて調べていると GD::Tilerというモジュールが使えそうだったのでサンプルコードを 書いてみました。 コード 最近 CPANにアップデートした人の顔写真を横 4つで 並べていくというものです。 #!perl use strict; use warn…

cdp: perlプロジェクトのトップディレクトリに移動

Perlのモジュールを書いているとき、lib/を下っていったり t/を下っていったりして、修正なり、コミットしたりしたあと テストのために、Makefile.PLがあるディレクトリまで戻るのが 面倒になったので書いた. Makefile.PL, Build.PLがあるディレクトリまで遡…

set-perl5libを改良する

最近 Flymakeを使い出したんで, 当然 set-perl5libも入れる わけなのですが, t::Util.pmみたいなテストユーティリティモジュールを 作成したときにうまく機能しなかったので修正しました。 lib以下のモジュールだとおそらくプロジェクトごとに名前が異なりま…

Acme::EbisuMuscatsを書いた

Kentaro Kuribayashi / Acme-MorningMusume-0.13 - search.cpan.org hidek/Acme-AKB48 · GitHub Yuichi Tateno / Acme-MomoiroClover-0.2 - search.cpan.org AKB48勢でもももクロ勢でもなかったので書いてみました。 個人的なおすすめは桜木凛です。あと作成…

Testgen補足

YAPC::Asia Tokyo 2011 2日目レポート[随時更新]:YAPC::Asia Tokyo 2011 スペシャルレポート|gihyo.jp … 技術評論社 @__papix__さんが YAPC::Asia 2011で発表した Testgenの補足について. コードは個人的にちょこちょこいじってましたが, 自分のプロダク…

なぜ Data::MessagePackのテストが ARM環境でパスしなかったのか ?

Data::MessagePackのテストが ARM環境でテストをパスしていませんでした. これはバージョン 0.38では解決された問題です. @__gfx__さんが msgpack本体の問題を修正し, 私が PP版の 修正を行いました. 結論から言うと, ABIの問題です. ARMには OABIと EABIが…

List::UtilsBy::XSが書けました。

List::UtilsBy::XSを書いてます。 - Life is very short の作業がとりあえずひと通り終わりました。 List::UtilsByのテストユーティリティがなぜか無限ループして しまうことや、Lightweight Callback APIの制限があったり しますが、List::UtilsByから持っ…

Light weight callback APIを使う場合とそうでない場合の差

List::UtilsBy::XSを書いてます。 - Life is very short のようなことを今やっています。詳しく Perl APIを理解できている わけではないので、List::Util、List::MoreUtilsを参考にしています。 それらのモジュールでは Light weight callback API(MULTICALL…

RETVAL経由の AV*, HV*の return

'perldoc perlxs'に 'Returning SVs, AVs and HVs through RETVAL'という 項目があって、ここに書いている通りにやると sub ret_av { ... return @array; } sub ret_hv { ... return %array; }みたいになるのかなと思って試してみたら違ったということのメモ…

List::UtilsBy::XSを書いてます。

XSの勉強ということで, List::Utilや List::MoreUtilsに 似ている List::UtilsByの XS版を書いています。 リポジトリ syohex/p5-List-Utils-By · GitHub ベンチマーク まだすべてが実装できているわけではないんですが、 sort_by, nsort_by, max_byについて…

IO::Prompt::Simpleを少しいじってみた

にひりずむ::しんぷる - IO::Prompt::Simple 書いた 会社の印刷のために IO::Promptを使ったスクリプトがあったんですが、 IO::Promptが Perl 5.14で動かない問題があったので, 自分で適当に書いたコードを使っていました。 そんな中 @xaicronさんが IO::Pro…

Perlに予約語ってあるのだろうか?

某ソースコード解析ツールを見ていると、各言語の予約語の定義という ものがあり、そういや Perlの予約語ってなんだろうって思った。 予約語の定義とは Wikipediaによると 予約語(よやくご)とは、プログラミング言語において字句的には識別子(変数名、関…

Perlで学ぶ「詳解 UNIXプログラミング」(その11) 第11章 端末入出力

はじめに 「詳解 UNIXプログラミング」の第十一章を示します. 本家 http://d.hatena.ne.jp/atsuoishimoto/20110329/1301324988 11.1 割り込み文字を無効にし、ファイルの終わりの文字を変更する PerlではC言語っぽいインタフェースでなく、OOishなインタフェ…

Perlで学ぶ「詳解 UNIXプログラミング」(その10) 第10章 シグナル

仕事が忙しくなり 4ヶ月ほど放置してましたが、再開. はじめに 「詳解 UNIXプログラミング」の第十章を示します. 本家 http://d.hatena.ne.jp/atsuoishimoto/20110328/1301279230 10.1 SIGUSR1とSIGUSR2を捕捉する簡単なプログラム #!/usr/bin/env perl use …

defined @_の挙動

http://memo.freedom-lite.com/?p=991 を見ていて、最後の例の挙動が違うなぁって思ったんですが、 これは 5.14で defined @_の挙動が変わっていることが原因でした。 % perlbrew exec perl -e 'sub {print "defined\n" if defined @_}->()' perl-5.10.1 ===…

Re: Perl MP3::Info MP3::Tag

Perl MP3::Info MP3::Tag | Index of /.Phantom いい書き方かどうかは不明だけど。 ここから取得したものは, shift_jisで エンコードされているので shift_jis決め打ちで。 #!perl use strict; use warnings; use MP3::Info; use MP3::Tag; use Encode; my $…

Perlスクリプトを実行する Perlのパスを知る

Perlスクリプトを自動生成する際に shebangにちゃんとした perlパスを埋め込みたいということで調べてみた。 Configモジュールを使うことで知ることができます。 #!perl use strict; use warnings; use Config; print $Config{perlpath}, "\n"; 結果 % perl …

すべての AV女優にマッチする正規表現

Regexp::Aseembleで遊んでみた. コード 正規表現作成プログラム #!perl use strict; use warnings; use autodie; use Regexp::Assemble; use Web::Scraper; use URI; binmode STDOUT, ":utf8"; my $cache_file = 'actresses.list'; main() unless caller; su…

Re: Perlを用いて、ファイル名をそのファイルの一行目に挿入するにはどのようにすれば...

http://www.cjrda.com/detail/q1165049091こんなのでいいんじゃないですかね。 % cat テキスト.txt 元のテキストです. % perl -i.bak -wlp -e 'print $ARGV if $. == 1' テキスト.txt % cat テキスト.txt テキスト.txt 元のテキストです. しかしベストアンサ…

Ubuntu 11.04で Gtk2のテストが失敗する問題

以前買った GTK本をいまさら読んでいるのですが、ただ Cで書くのも 面白くないので Perlでも書いてみようと思って Gtk2をインストール しようとしたのですが、テストでこけたのでそれについて。 失敗するテスト 失敗するのは t/GtkScrolledWindow.tです。 % …

get-shit-done.pl

ついついダラダラと見てしまうサイトをブロックしてくれるPythonスクリプト「Get Shit Done」 | ライフハッカー[日本版] greenisus/get-shit-done · GitHub コード コンフィグファイル読み取りの部分は別にいいか、と思って書いてません。 ソースはこちら…

自分のブログのGoogle Reader購読者数をPerlでぶっこ抜く

自分のブログのGoogle Reader購読者数をRubyでぶっこ抜くの Perl版. コード 仕組みを理解するために Google WebAPI関連のモジュールには頼らず 書いてみました。 #!/usr/bin/env perl package App::GoogleReader; use Mouse; use Carp; use Furl; use JSON; …

Text::UnicodeTable::Simple-0.01をリリースしました。

Syohei Yoshida / Text-UnicodeTable-Simple-0.01 - search.cpan.org リリースしました。初CPANモジュールです。 はじめに Text::UnicodeTable::Simpleというのを書いてます - Life is very short モジュールを書いた動機は上記のエントリの通りです。 サン…

CPAN Authorを数える

なんとなく気になった。 #!perl use strict; use warnings; use Furl; use IO::Uncompress::Gunzip; my $url = 'http://ftp.nara.wide.ad.jp/pub/CPAN/authors/01mailrc.txt.gz'; my $ua = Furl->new; my $res = $ua->get($url); unless ($res->is_success) …

HTTP::Tinyでプログレスバーを表示

Furlの FAQのものと同じですが。 #!perl use strict; use warnings; use HTTP::Tiny; use Term::ProgressBar; use File::Basename; my $url = shift or die "Usage $0 url"; my $ua = HTTP::Tiny->new( agent => 'sample ua', ); my $bar = Term::ProgressBa…

ExtUtils::Installedを使ってインストールされているモジュール一覧を得る

App::cpanmigrate - search.cpan.org のソースを見ていたら, ExtUtils::Installedを使うことで インストールされているモジュールを知ることができるということを知りました。 ExtUtils::Installedは標準モジュールです。以下のようなワンライナーで一覧が得…

Text::UnicodeTable::Simpleというのを書いてます

まだいい加減なレベルの段階なんですが、とりあえず紹介. 書いた動機 Text::ASCIITableや Text::SimpleTableでは, FullWidthな文字が 扱えなかったためです。 Text::ASCIITableを 2文字幅の文字に対応させる - Life is very short Text::ASCIITableでなかば…