Humanity

Edit the world by your favorite way

Perl

CPAN形式のディレクトリからdebを作る

$ sudo apt-get install dh-make-perl devscripts $ cd {CPAN形式のディレクトリ} $ dh-make-perl . # debを作るのに必要な {CPAN形式のディレクトリ}/debian/ が作られる $ debuild This package has a Debian revision number but there does not seem to …

hwwのセットアップ

Term::ReadLine::Gnuをインストールしてないとなんかエラー吐いて終了するよ。 どんなエラーだったか忘れた。 Term::ReadLine::Perlとかでもいいかもしれんね。しらんけど。 hwwってなに? もはや自分にしか使い方がわからない自己満ツールだがブログ書くの…

App::gh直した

c9s/App-gh · GitHub --mirrorってオプションいれた --bareよりもこっち推奨 (ディレクトリがあった時にmasterをアップデートしない) ぶっちゃけ--bareも--mirrorと同じ挙動でもいいんじゃないかと思ったけど力尽きた いろんなオプション動かなくなってたの…

Re: perl - LWP::UserAgentで進捗表示しつつダウンロード

404 Blog Not Found:perl - LWP::UserAgentで進捗表示しつつダウンロード 修正点 binmode()がなかった 前の出力が残る場合があった コード

dlnico.pl作った

(追記 2015/12/05 1:59) 更に修正しました。 tyru.hatenablog.com 本文 作ってからふとdlnicoで検索したらdlnico.pyってのがあって、 自分がほしい機能が揃ってたので感動したけど動かなくなってたので作った。tyru/dlnico.pl · GitHub 追記 (2011/06/29 19:…

perl5140delta

perldelta - perl v5.14.0 での変更点 - perldoc.jp id:gfxさんのエントリで紹介されたもの以外で興味あるものだけpick up given の返り値 given ブロックは最後に評価した式を返すようになりました (ブロックが break で終了した場合は空リストを返します)…

Module::Build, Module::Install

Module::Build Module::Install

user id からscreen nameへの変換

前の記事で出したスクリプトでuser idからscreen nameへの変換をしていたのだけど、 以下のperlのワンライナでできる。 追記 上のワンライナーはもう動かないっぽい。 以下のURLに直接アクセスして確認する。(とりあえずIDの存在確認だけしたかったので) htt…

Re: フォロワーの増減を確認する

元記事はこちら。 元記事にあるスクリプトをちょっといじってみた。 変更点は ユーザIDを引数で指定可能にした cronで回すために増減がなければ0で終了するようにした IDで表示するのではなくscreen_nameで表示するようにした 元記事に書かれてある通り他人…

Vimスクリプトのデバッグ手法

動きます 追記 うっかり quickrun したら Vim が固まったじゃないかどうしてくれる URL2011-02-25 18:40:56 via TwitVim言うの忘れてた...ごめんなさい...

File::Specのハマった仕様

splitdir("/foo/bar") が ("", "foo", "bar") を返す Unlike just splitting the directories on the separator, empty directory names ('') can be returned, because these are significant on some OSes. canonpath()はパス中のsymlinkを解決してくれな…

はてなアンテナに登録しているページをLDRに移行する

追記 (2011-01-07) うわーしまった... これ移行アクセスできない変なフィード増えたなぁとか思ってたらスクリプト中にあるURL間違ってたorz 同じ現象にあった方すいません... ちなみに関係ないけど自分はvimでマクロ使ってさっと直してgist.vimでgistにアッ…

スクリプトで使われてるモジュールをcpanmでインストール

used_modulesってのを書いた。こんだけだけど。 これで $ used_modules script.pl | xargs cpanmとかできる。http://github.com/tyru/dotfiles/tree/master/dotfiles/bin/used_modules 追記: id:punitanさんからModule::ExtractUseという便利なモジュールを…

Getopt::Compact::WithCmd動かない

むむむ...モジュールのバージョンは書いてある通り0.10。

boost::formatみたいな指定ができるPerlのsprintf()

元記事はこちら。 *1 % perl -E'say sprintf(q[%d %d %d], 1, 2, 3)' 1 2 3% perl -E'say sprintf(q[%2$d %3$d %1$d], 1, 2, 3)' 2 3 1 http://id-perl.blogspot.com/2010/04/tip-sprintf.html 「%2$d」のように指定すると2引数目が取れるんですね。文字列な…

unless

Rubyでも使えるけど、unlessって便利。 こんなif文も sub f { if (@_) { say "foo"; } } こんな風にすれば sub f { return unless @_; say "foo"; } インデントを深くしないので変更する時も楽。 if文でもできるけど、unlessだと条件の中身を変えずにassert…

given when break

Perl - id:tyruが毎日FizzBuzzを一生懸命書く日記 - fizzbuzzグループ #!/usr/bin/env perl use strict; use warnings; use utf8; use feature qw(switch say); sub stream { my $i = 1; sub { $i++ } } sub fizzbuzz { my $gen = stream(); sub { my $i = $…

言語内言語

Perlは言語内言語が多すぎる。正規表現、(un)pack、(s)printf・・・どれも慣れてれば素晴らしく有用だから困る。 #perl http://twitter.com/tyru/status/7477143057 そういやこれの他にglobもあるな。 しかもこれパスの区切りはMSWin32だとかUnixだとか関係…

Regexp::Assembleのバグ?

追記: バグだなんだ言ってねーで手動かせうんこ野郎。 ということで正規表現リテラル(?)じゃなく文字列で渡せばうまくいきました。 でも正規表現リテラルでもできなかったっけ? コメント欄で紹介させてもらった弾さんの記事でも正規表現リテラル使ってるし…

Re: Please!

I love Perl. and I love him.

Perlの好きなところ・便利なところ

Perl 6 チュートリアル 9日目:引数と引数渡し - ヤルキデナイズドだったPerl6では配列がデフォルトではフラットに展開されないらしい。 Perlの素晴らしい所の一つなのに・・・と思ったけどやっぱりフラットに展開するようにもできるみたい。 単項の|なんて…

Perlでうまくバイナリデータとかをpack, unpackで弄れなかったのは自分が文字列とバイト列を間違えやすかったという超はずかしい原因が判明した。 なんか自分でも言ってる意味がわからない。ていうかTwitterでやれ。

胸が熱くなるな

Cool Things in Perl 6 | Ovid [blogs.perl.org]Perl6ではやりたかったことがどんどんできるようなる。 Perlでもtieを使えばできなくはないけど、入力をチェックしたいだけなのに何個ものメソッドを実装しなきゃいけないし、クラスを作るとなるとやはり別フ…

Perlの演算子

毒にも薬にもならないエントリ。 なんかPerlについて語ってたらいつの間にか長くなった。 ここでソート用関数で int comp_func(const int *a, const int *b) { return *a - *b; } とかやると値域が限定されてオーバーフローとか起こすよって話題があって、 …

配列の添字のラップアラウンド

ふと配列のインデックスをラップアラウンドする必要があって、考えてみたらこんなのにしばらく悩んでけっこう凹んだ。 元のはVimスクリプトだったんだけどPerlで。 #!/usr/bin/env perl use strict; use warnings; use Test::More; sub array_get_elem { my …

Coroのcedeについて

Gistにうpしたけど合ってるか微妙。

hwwのtips

ふとこの前のGMailの記事を修正しようと思って日記のディレクトリを見たらなかった。 これってブラウザから更新したんだっけ?と思い、次のようにしてインポートした。 $ perl hww.pl load --all --missing-only textこれでtextディレクトリにない日付の記事…

hww追加機能

んでまた前のエントリ書いてる時思ったことなんだけど、 hwwで画像を複数送りたいなーと。 それでしかもはてなフォトライフ記法みたいに挿入する位置も指定したいなーと。 後者は独自記法っていうかうまくはてな記法とバッティングしないような記法で位置を…

hwwのAtomPub API対応について

結局対応はやめることにした。 というのも、Hatena AtomPub APIの仕様は1エントリ(メンバURI)か全てのエントリ(コレクションURI)に対してのの操作(POST, GET, PUT, DELETE)しか用意されていないのに対し、はてダラの仕様が1日ごとにファイルを保存する仕様な…

hww更新状況

大分進んできた。 今回は仕様変更などもあって、もし今まで使ってきてくれた人がもしいるなら注意してください! 最後の仕上げに向けての仕様変更なのでもう仕様変更はありません。多分。 機能追加など Config::Pitを使ったユーザ名とパスワードの取得 設定…