Perl

メモ

$_ = int(rand 3) - 1;

むー

use Perl6::Say; use URI; say for map { $_->[0] =~ s/^h(?=ttp)//; $_->[0]; } sort { $a->[1] cmp $b->[1] or $a->[0] cmp $b->[0] } map { chomp; [$_, join '.', reverse split /\./, URI->new($_)->host]; } <DATA>; あとでもう少し書き直すけど、とりあえず</data>…

if〜elsif〜else

いつの間にか20個ぐらいelsifで繋げてるのはアレだなぁ。それこそハッシュでディスパッチテーブル書いたほうがいいなぁ。書き直そう。 追記 んに、普通にハッシュってわけにもいかないなぁ。じゃあ配列で。

壁紙チェンジャ

ついカッとなって書いた。書くものは何でもよかった。いまは反省している。 use strict; use warnings; use Data::Visitor::Callback; use Imager; use Win32::Wallpaper; use YAML::Syck; my $cfg = shift or die $!; $cfg = LoadFile $cfg; $cfg->{include…

今日もやっつけ仕事

use strict; use warnings; use DBI; use Encode qw/from_to/; my $dbh = DBI->connect('dbi:SQLite:./hash.db', '', '', {RaiseError => 1}) or die $!; my $sth = $dbh->prepare('SELECT * FROM hash'); $sth->execute; open my $fh, '>', 'dump.txt' or d…

DesktopAlbum

のファイルからごにょごにょするスクリプト。私専用。書き捨てだけど、いちおう残しておきます。エラーチェックとかなにもしてないのは仕様。 use strict; use warnings; opendir my $dh, '.'; my @fp; while (defined($_ = readdir $dh)) { next unless /AL…

SQL覚えてないとつらいなぁ

DBIを使って直でSQLを書いてるから、SQLの書き方がわからないとちょっと面倒。まあ、それくらいはちょっと調べたら大体よさそうなのが見つかるので調べればいいんですが。

書き直し

前に書いたスクリプトが使っていて不便に思うので、ちょろっと書き直し。 use strict; use warnings; use DBI; use Encode qw/from_to/; my $dbh = DBI->connect('dbi:SQLite:./foo.db', '', '', {RaiseError => 1}) or die $!; my $sth = $dbh->prepare('SE…

パラメータで分岐

このエントリに対して 2007年07月03日 fbis perl ハッシュでディスパッチテーブルを作っておくほうがキレイかな http://b.hatena.ne.jp/entry/http://d.hatena.ne.jp/macperl/20070127/p1 ってコメントがあったのだけど、ハッシュでディスパッチテーブルって…

やっつけCSV

while (<$fh>) { chomp; my @data = split /,/; s/^"|"$//g foreach @data; # ほげる } やっつけ仕事すぎるなぁ。改行も入らないし、ダブルクォートのエスケープもなにも考えてないや。今回処理したデータはこういうの一切考えなくてよかったからこんなので…

del.icio.usは読まなくていいと思ったので

feedburnerでフィードをまとめているようなblog*1のとき、del.icio.usの内容までは別に読みたくないので、Plaggerのconfig.yamlにRuleを書き足してみました。 - module: Filter::Rule rule: module: Expression expression: $args->{entry}->{link} !~ m{^ht…

CPAN::SQLite

CPAN::SQLiteでエラーになって、make_ppmが出来ない… perl -MCPAN::SQLite -e "CPAN::SQLite->new->index(setup => 1);"とりあえずdbの再構築してみたら直ったので、なにかのタイミングでdbが壊れたかなにかしたのかなぁ。

正規表現からその正規表現にマッチするような例を生成する

via. 正規表現からその正規表現にマッチするような例を生成する - www.textfile.org Perlでもたしかそんな感じのことやってくれるモジュールがあったよねー、と思ってちょっと探してみたらやっぱりもうあったり。 pcreフルスペックじゃないけど、実用上はこ…

EFTかいたり

全文配信してないフィードは読むのがめどいです。

Image::Info

たまに&Image::Info::image_infoでエラーになるjpegがあるなぁ。 use Image::Info qw/image_info/; $_ = 'foo.jpg'; my $info = image_info $_; die "$_: $info->{error}\n" if $info->{error}; こんなコードを走らせると、 foo.jpg: substr out side of str…

Aggregator::Xangoが微妙に挙動不審

なので、Aggregator::Simpleに戻してみました。なんか同じフィードを3回くらい処理してる。どのフィードも、ってわけじゃなくて、手元だとどうもはてなダイアリーのRSSだけみたい。あとCustomFeed::Configで読んでるhttp://sakuraba.if.tv/diary/の更新を拾…

DesktopAlbum

use strict; use warnings; use Digest; use File::Temp qw/:seekable/; use Image::Info qw/image_info dim/; use Imager; my $width = 1400; my $height = 1050; opendir my $d, '.' or die $!; while (defined($_ = readdir $d)) { next unless /(?:jpe?g…

Imager

とりあえずやりたい事をやるための方法は見つけたけど、もう眠いから明日書くことにして寝ゆ。

暗号化

いくつかCPANモジュールを組み合わせて、お手軽にファイルの暗号化。速度的にはちょっと劣るけど、気軽に使えるし、オレオレフォーマットに出来るからちょっと楽しかったり。使ったモジュールは以下に。 Crypt::CBC Crypt::Rijndael Digest Encode Math::Ran…

うー

プラグインを少しずつ実装中。あとプラグインをロードするところで、同じプラグインを複数回ロードしようとしてるので、%INCをチェックして最初の1回のみrequireするように修正。requireはもともと%INCをチェックして読み込み済みだったらnoopだから、そのま…

config.yamlのvalidator

YAML::Syckで読み込んでる時点でyamlとしてvalidなのはわかってるんだけど、config.yamlとしてvalidかどうかって確認してないや。モジュールの読み込みとかレシピのパースとかする前に、config.yamlとしてvalidであることを確認しないといけないよね。あとで…

レシピ

とりあえず動くようにしてみました。次はプラグインの実装だね。今はまだスタブを書いてあるだけだから、実際にはなんの動作もしてないです。

ちょろちょろと

前に書いたコードに少し手を入れたりしながら。簡単な定型処理なら手作業でやるよりもその場でPerlにやらせたほうが早いし、なによりお手軽なので、ちょろっとコードを書いたりして。

レシピ

とりあえずループをどうしようかの件はどう実装するか決定したので、明日にでも。数値解析のレポートも書かないといけないのだけど。最近疲れが溜まってて、講義の途中少しうとうとしてたから、教科書参考に挑戦。あと先週のレポートで2の5乗を2進数の5と書…

Aggregator::Xango

を導入してみた。差はわからないけど、ま、遅くなってる感はないし。

今日の進捗

レシピに手を付けてみました。二重にループしなきゃいけないのだけど、外と内をどちらにしようかちょっと悩んでます。試行回数を最小にしたいから、明日テストスクリプトを書いてみる予定。

ログ

IO::Teeを使ってlogging。標準だとSTDOUTのみ、yamlでファイルを指定しておくとそのファイルにも同じ出力を追加書き込み。出力するだけの機能しかつけてないから、タイムスタンプつけるとか、実際にはもう少し手を入れないといけないかな。次はRecipeまわり…

プラグインの読み込み

ここまで書いてみた。Module::PluggableでPluginディレクトリに入ってるプラグインを全部まとめて読み込むのをやめて、レシピをパースして実際に使ってるものだけ読み込むようにしました。ちなみに、実装するに当たってコードを参考にほんの少しだけPlagger…

文字列の先頭がある単語で始まらない正規表現

via.文字列の先頭がある単語で始まらない正規表現って - Unknown::Programming 逆に考えて、 $hoge !~ /^foo/; とかやったらダメなんだろうかとか思ったけど、きっとこの場合は不適当なんだろうなぁ。前にマッチしないことを条件にしたときはqr/^(?:(?!foo).…

メモ

Crypt::RijndaelはRijndaelっていうよりもAES。