perl
$ARGVの扱いかが変わったことが原因らしい。 package mainで動かす分には問題ないですが、他パッケージで利用していて Perlのバージョンアップを行う場合は注意が必要です。 Failed IO::Prompt::prompt in Perl-5.14 · GitHub バグレポートが積み重なってい…
Perlで乱数生成 - ハブ君の寝言 を見て、昔自分もそんな感じで書いてたなぁと思い出しつつ、 今の知識で書いてみました。 手法1 0から nまでの配列を生成 0から nまでの乱数を生成 (2)で得られた indexと配列の最後の要素を交換 n = n-1とし, (2)に戻る. こ…
Parse::RecDescentを一回ぐらい使っておこうかなということで使ってみた。 書いてみたのは .iniファイルのパーサです。たくさんモジュールがあるし、 実際に使う気があるわけでもなく、ただ練習ということで。 iniの仕様 書くにあたってわかったのですが、.i…
Text::ASCIITableがmulti-width charactersに対応していないようですよ!腕に覚えのあるPerl Mongerにおかれましてはパッチを書いてみてはいかがでしょうか!!2011-06-11 18:46:31 via Tween このようにText::ASCIITableはデフォルトでは半角文字だけで日本…
Net::NTPというモジュールがあったので使ってみた。 なんか名前的にデフォルトで入ってそうと思ったけど、 デフォルトでは入ってないですね。 コード get_ntp_response()のみを提供するモジュールです。 #!perl use strict; use warnings; use Net::NTP (); …
Calendar::Simpleと Text::ASCIITableを使って書いてみた。。 プログラム #!/usr/bin/env perl use strict; use warnings; use Calendar::Simple; use Text::ASCIITable; my ($this_mon, $this_year) = (localtime)[4,5]; my $month = shift || ($this_mon +…
The Onion Stand: Data::Printer - a colored pretty printer for Perlで紹介されている Data::Printerというのを使ってみた。 例のままですが、一応。 インストール 依存モジュールはそこそこですかね。 % cpanm Data::Printer 使う とりあえずは pメソッド…
勉強のために書いてみた。APIは同じにしてます。 実装もほとんど同じです。 元ネタ GoogleのAPIで仮名漢字変換するGem - ミニマリストhitode909の日記 デベロッパーガイド Google 日本語入力 - CGI API デベロッパーガイド リポジトリ syohex/p5-App-GlitchI…
標準出力、標準エラー出力への書き込みを別々に 取得したい場合に便利に使えます。 ソース #!/usr/bin/env perl use strict; use warnings; use Capture::Tiny qw(capture); my ($stdout, $stderr) = capture { warn "message to STDERR"; print "message to…
Webアプリというものがよくわかっていないのと Plackを使ってみたいという ので、作ってみた。少し知識が広がった気がした. コード #!/usr/bin/env perl use strict; use warnings; use utf8; use Encode; use File::Temp; use Plack; use Plack::Builder; u…
文字幅ってどうやって調べるんだろって思って、 使えるモジュールを探してみた。 #!/usr/bin/env perl use strict; use warnings; use utf8; my $str = "リンゴゴリラ"; { use Unicode::Japanese; printf "[%s] length = %d\n", 'Unicode::Japanese', Unicode::J…
JavaScriptのサイズを減少させるためのモジュール JavaScript::Packerの例。 #!/usr/bin/env perl use strict; use warnings; use autodie; use JavaScript::Packer; my $js = shift; open my $fh, "<", $js; my $js_code = do { local $/; <$fh>; }; close …
http://blockdiag.com/blockdiag-ja/build/html/index.htmlを見て、なにかできないだろうかって考えてみて、cflowの結果から コールフローが作れるなって思って、コードを書いてみた。 準備 cflow, blockdiagをインストールします % sudo aptitude install c…
へぇこんなんのあるんだって思ったらかなり古くあるものだった。 どんなんか知るために、サンプルを書いてみる。 参考 http://search.cpan.org/~robertsd/HTML-TagCloud-0.36/lib/HTML/TagCloud.pm ソース DMMから女優ランキングを取得し、それをタグクラウ…
Perl 5.14.0が出ました。気になるものとして、新しい標準モジュールに入った HTTP::Tinyがあります。cpanmも使っているモジュールです。 標準モジュールで HTTPクライアントが簡単にかけると、助かる場面と いうのは多いのではないでしょうか。 perl5.14.0 J…
Clipboardモジュールは OS間のクリップボードの違いを埋めてくれるもの なのですが、Macの場合、MacJapanese(Shift_jis + Apple拡張)で encodeしないと ちゃんと日本語が扱えないというのがあって、それだと Linux向けに書いた utf-8の コードをそのまま持っ…
会社で GUI経由だと印刷できないんだけど、コマンドライン経由だと 印刷できることが最近分かりました。でも lp、 lprってオプションが 覚えられないのでそのためのユーティリティ。両面印刷と集約印刷、プリント枚数ぐらいしかいじらないのでそれのみの対応…
Emacsにシェルで使っている環境変数を設定したい。 主に perlbrew関連なんですけど。シェルから Emacsを起動したらそれで 解決なんですけど、どうもシェルから起動すると意味もないのに ミニバッファにフォーカスが移るということが多発しました。 なので 環…
ブログ以外にもTwitterやってる人も多いよね、ということでコードを書いた。 情報を集めさせていただいたサイトでは onclick経由で該当のサイトに飛ぶんだけど、 Web::Scraperの場合 'onclick'であっても, 'onClick'と書かないといけませんでした。 注意はそ…
はじめに 「詳解 UNIXプログラミング」の第八章を示します。 本家 http://d.hatena.ne.jp/atsuoishimoto/20110324/1300933805 8.1 fork関数の例 forkでは親プロセスと子プロセスのメモリ空間が異なるため グローバル変数も共有しません。これはマルチスレッ…
はじめに 「詳解 UNIXプログラミング」の第九章を示します。 9.1 オーファンドプロセスグループの作成 オーファンドとは親のいない状態という意味のようです。 #!/usr/bin/env perl use strict; use warnings; use POSIX; # オーファンドプロセスグループの…
CPANモジュールガイドを読了しました. 個人的には Encodeの説明に載っていた Perlの"文字列"とバイト列の説明は とてもよかったです。理解が中途半端だったんですけど、おかげで理解できました。 中級者はより理解を深めるために、初心者はこんなことできる…
はじめに 「詳解 UNIXプログラミング」の第七章を示します。 本家 http://d.hatena.ne.jp/atsuoishimoto/20110322/1300757335 7.1 終了ハンドラの例 Perlには atexitはなく、ENDブロックを使います。 #!/usr/bin/env perl use strict; use warnings; # 終了…
はじめに 「詳解 UNIXプログラミング」の第六章を示します。 本家 http://d.hatena.ne.jp/atsuoishimoto/20110318/1300407363 6.1 getpwnam関数 getpwnamは/etc/passwdの内容を取得する関数なのですが、 Perlでの仕様がよくわからない。普通は 7つしかフィー…
はじめに 「詳解 UNIXプログラミング」の第五章を示します。 本家 http://d.hatena.ne.jp/atsuoishimoto/20110317/1300328961 5.1 getc()とputc()を用いて標準出力へコピーする 1章あたりでも書いた気がするけど。 Perlでは putcがありませんので、printを使…
はじめに 「詳解 UNIXプログラミング」の第三章を示します。 本家 http://d.hatena.ne.jp/atsuoishimoto/20110310/1299715993 3-1標準入力ファイルがシーク可能で有るかどうかを調べる POSIX::lseekが使えます。 #!/usr/bin/env perl use strict; use warnin…
はじめに 「詳解 UNIXプログラミング」の第四章を示します。 本家 http://d.hatena.ne.jp/atsuoishimoto/20110315/1300142354 4.1 指定したファイルの種類を出力する もっと種類は調べられますが、Python版に合わせています。 詳しくは "man 2 stat"等を参照…
はじめに 「詳解 UNIXプログラミング」の第一章を示します。 本家 http://d.hatena.ne.jp/atsuoishimoto/20110307/1299456377 1.1 ディレクトリ内の全てのファイルをリストする opendirと readdirで実現できます。 #!/usr/bin/env perl use strict; use warn…
初めに id:atsuoishimotoさんのPythonで学ぶ「詳解 UNIXプログラミング」シリーズで Perlで書いたらどうなるかというのがあれば面白いんじゃないかなと思って書きます。 本は一応持っているのですが、全然読めてないので、 コードは id:atsuoishimotoさんが…
今回の地震にあたり、大学時代一緒に過ごした人たち、後輩の 緊急連絡網を作成しようということで、情報を送ってもらったのですが、 携帯電話に打ち込むのが面倒くさすぎるということで、QRコードにしたら カメラで取るだけなので簡単じゃねって思って作った…