Perl
以下の過去記事への自己レスのようなものです。 ryozi.hatenadiary.jp コメントで教えていただいたり、try featureが追加されたりしていたのでこれを機に色々使ってみました。 あと、タイトルから「(Javaのような)try-catch-finally文をPerlで行う方法」と…
ディレクトリとファイルの整理をすることになって、ファイル名に基づいて連番を振るリネーム作業が必要になった。 2_0001.dat、10_0001.dat、10_0002.dat だとか、10_aa.dat、10_ab.dat、といった感じのファイルをいい感じに並び替える必要があった。 見ての…
WWW::Mechanizeを使うとリダイレクト処理とかよしなにやってくれて便利。 しかし、うまくクエリパラメータが渡されてないとかになってくると、やっぱり間の状況もしっかり見たくなる。つまり、curl -Lv URL みたいに、リダイレクトを含めたリクエストログを…
DDNS更新は固定IPを持たない自分としてはとても便利なのだけど、value-domainのDDNS更新はhttp通信のため、DDNS更新用のパスワード情報を傍受される可能性がある。これは非常によろしくないので、セキュアに通信する方法を考える。(結構当たり前のように使わ…
PerlいれてCPAN入れて初期設定をEnter連打して飛ばしたら、 CPANのミラーにロクに繋がらない状態になって焦ったので。 cpanで o conf を入力 cpan[1]> o conf $CPAN::Config options from /root/.cpan/CPAN/MyConfig.pm: ...以下略 このファイルを削除するな…
このあたりがよくまとまってました。 http://weblog.nqou.net/archives/20090223224328.html PurePerlなFeedPPが結構頑張ってる印象。 自分で書いたSAXハンドラーがどんなもんか試した。 いろんなパーサーで。 Rate XML::Feed XML::RSS XML::SAX::PurePerl +…
RSSを扱う用事があったので、普通のRSSリーダを使ってたけども、 ふと、SAXパーサを使って読み取ってみたくなったので、試した。 DOMだと全体を読み取らないとダメなので、場合によってはメモリを食べてしまう。 SAXなら上から読み取って、いくつかのタイミ…
ちょろっとPerl正規表現で遊んでたので、適当に書いとく。 式を文字列として書くなど use strict; use warnings; use 5.10.1; # 普通 say 'xyz' =~ /y/; # 1 say 'xyz' =~ 'y'; # 1 # メタ文字 say 'xyz' =~ /.yz/; # 1 say 'xyz' =~ '.yz'; # 1 # オプショ…
Encodeモジュールはスレッドセーフではない、ってどこかに書いてあって、 find_encodingで得られるオブジェクトを使いまわしてる身としては気になったので。 (スレッド間で使いまわすことはないんだけど。) 適当にスレッド作ってループ回してみたけども、 ス…
$file->asset->is_file を使うとファイルか否かの判別ができます。 my $file = $self->req->upload('file'); if($file->asset->is_file){ print("filepath: ". $file->asset->path); # 一時ファイルパスが表示される }else{ print("content: ". $file->asset…
ファイル存在の確認はファイル演算子である、-fを使うと思うのだけど、 openの戻り値を見ても出来るから、もしかしたら・・・と思ってベンチマークとってみた。 use strict; use Benchmark qw(cmpthese); my $filepath = "bench.pl"; cmpthese(10_000, { 'op…
LWPでできるかなって思ってたら、すぐできなかったのでSocket叩いて書いたけど、 調べたら普通にLWPで出来た。ですよねー。 use LWP::UserAgent; use HTTP::Request::Common; my $ua = new LWP::UserAgent; my $res=$ua->request( POST('http://192.168.11.2…
XSってなんか難しそうと思っていたけど、わりと簡単だった。 Windows 7 64bit + Strawberry Perl 5.12.3.0 printfするだけなので実用性はないけども、 引数を受け取って処理できるようになってくると、捗りそう。 CODE部分はC言語でもりもり書けますし。 参…
dieすると、そのdieした場所の行しか教えてくれないので、 何から呼ばれたのか、とかそういった情報がなかったので、今までprintデバッグでトレースしてました。 diagnosticsプラグマを指定しておくと、dieしたときとかにスタックトレースを出してくれます。…
LWP::UserAgentを使って某FC2の某RSSを取得してたら、どうみてもUTF-8らしからぬデータが返ってきて焦った。 早速、某エディタを使って作業か・・・と思ったら、 某campで先頭4byteを見て某U先生が「これはgzipですね」と言っていたシグニチャを覚えていたの…
前やってダメだった、Windows版PerlへのText::MeCabの導入が出来たっぽいのでメモ。 MeCabのバージョンは0.98で、PerlライブラリにText::MeCabを使います。 文字コードはUTF-8とします。
形態素解析とかよくわかんないけど、偉い人らが作ってるので使ってみたかったの。 WINWINな環境で頑張ってたけど、うまくいかないので投げた。 まずはおとなしくLinuxでやります。 本体 wget http://mecab.googlecode.com/files/mecab-0.991.tar.gz tar xzvf…
ドキュメント見ればいいです。 http://perldoc.perl.org/SelfLoader.html use strict; use warnings; use SelfLoader; # 1 while(<DATA>); # 先にDATAを全て読み出してしまうとダメ print foo() . "\n"; # OK print bar() . "\n"; # SelfLoaderを使っている && ま</data>…
Perlのプログラムの中の文字列定義を数えるための正規表現 多分動くはず・・・ というか、qq ah\agea もOKとかびっくりだよ。 もう少しスマートにならないもんか。 # テスト。文字列は9個ある my $string = <<'_X_'; print('hoge :' . "$hoge"); print('aaa …
my TYPE EXPR;という書式を初めて知ったので調べた。 資料 my - perldoc.perl.org fields - perldoc.perl.org 追記 御叱り元 Re: use fields; と my TYPE EXPR; - Islands in the byte stream fields::new()が遅いからですね。fields::new()の意味は、5.10.0…
2022/12/30追記: 本記事は「Perlのプロトタイプ宣言を利用してtry-catch-finally文を作る」といった記事です。コメントにある通りTry::Tinyがまさしくこれをちゃんとやっています。もし「Perlでtry-catch-finallyを行いたい」という場合は次をお読みください…
普通の文字列比較では、"a999.txt"と"a1000.txt"では、後者が小さいとみなされます。 しかし、後者が大きいと判定したほうが、自然です。 Wind0wsの場合は数値の部分は数値の比較を行ってくれるようで、ファイル名ソートすると、良い感じにやってくれます。 …
Windowsのファイル内検索システムがクソすぎるので急ぎで作った。 my $search = "文字列"; my $MIN_BUFFER_SIZE = 4096; foreach my $file (<*>){ if(! -f $file){ next; } print "$file\n"; open my $FH, "<", $file || die 'cant open file'; binmode($FH)…
Perl5.10(1005) + DBI + DBD::SQLite で動きます。 本体コード: Local/Util/TaggingDatabase.pm http://ideone.com/bU1R8 テスト: test.pl http://ideone.com/6QKsc
CSのデモを整理のためにzip圧縮しようとしたら、220個ものデモを手動でぽちぽち圧縮するのはとんでもなく面倒な事に気づいて、コマンドラインで出来れば・・・と思ったので。 オレオレバッチ処理プログラミングは楽しい。それにしても久々に普通のプログラム…
前の続き。 LWP::UserAgentを眺めていたら http://perldoc.jp/docs/modules/libwww-perl-5.813/LWP/UserAgent.pod#item__ua__gt_get___url__ :content_cb オプションでコールバック関数が指定されると、 レスポンスの内容の塊ををサーバから受信する毎にこの…
OAuth認証を通過してTwitterの自分のアカウントのTLを取得するプログラムをPerlで書いてみた。 色々間違っていそうだけど、とりあえずTLを取得できたので、その流れをメモ。 Net::OAuthとか使うんだろwwwwとか思ってた人、ごめんなさい。 ほぼ標準で入っ…
HMAC - Wikipedia http://ja.wikipedia.org/wiki/HMACRFC2104 - HMAC: Keyed-Hashing for Message Authentication http://tools.ietf.org/html/rfc2104 要するに、データをキーでハッシュします。これによりデータを認証できます。 Perlで簡単に実装できるの…
Perlで文字列に対して排他的論理和(xor)などのビット演算が使える事を知りました。
マジカルインクリメントとかブルートフォース以外で何に使うんだよ・・・