かみぽわーる

kamipo's blog

perl

簡単に手元でHTTPのファイルサーバ立てる方法

.zshrcにstatic_httpdって関数つくってる。 dotfiles/.zshrc at master · kamipo/dotfiles · GitHub function static_httpd { if which ruby > /dev/null; then ruby -rwebrick -e 'WEBrick::HTTPServer.new(:Port => 5000, :DocumentRoot => ".").start' el…

SQLでincrementした値を表示するやつ

MacBook Air 11インチ欲しい!@sugyanさんのSQLでincrementした値を表示する方法を考える - すぎゃーんメモを生DBIでやってみたのとベンチマークとってみた。トランザクションなし Rate dbic teng dbi1 dbi2 dbic 578/s -- -64% -92% -92% teng 1587/s 175% …

libjpeg-turboでjpegの変換が速くなる

巷でlibjpeg-turboというやつが速いというのを聞いたので試してみる。今回はaptで入れた以下のモジュールでベンチマークしてみた。いちおうサーバはさくらのVPSでOSはUbuntu 10.04 LTSです。 Image::Magick 6.5.7 Imager 0.72 GD 2.39 Image::Imlib2 2.02 ふ…

OSが32bitか64bitか判定する方法

twitterで教えてもらった。 % perl -le 'print "@{[~0, 2**32-1, 2**64-1]}"'~0とかいう発想は思いつかなかったなー。 参考 Twitter / hirafoo: @kamipo sizeof(long) ... Twitter / ktat: @kamipo perl -e 'print ~0' ...

Math::BigInt::Liteはx86だとテストが通らない?

前からDBIx::MoCoを入れようとするたびにMath::BigInt::Lite 0.12のテストが通らなくてゲンナリするんだけど 今日x86_64のperl5.10でやったら余裕でテスト通った。 通らないテストはt/bigintpm.incの200行目で、 x86 perl5.8.9 try: $x = Math::BigInt::Lite…

NICの一覧が欲しかった

debianのeth0とかeth1とかが認識順になるせいでNICの指定がめんどくさい。 ifconfig -s |perl -lne 's/(\S+).*/$1/; print unless /^(?:Iface|lo)$/'ifconfig -s |perl -lne 'grep {print unless /^(?:Iface|lo)$/} /(\S+)/'

環境に合わせた改行に変換するワンライナー

alias nlconv='perl -i -pe '"'"'s/\x0D\x0A|\x0D|\x0A/\n/g'"'"

モジュールのバージョンを表示するワンライナー

alias pmversion='perl -le '"'"'for $module (@ARGV) { eval "use $module"; print "$module ", ${"$module\::VERSION"} || "not found" }'"'"

スカラーのコピーのリファレンス

arrayとhashのコピーのリファレンスは []と{}で簡単に作れるけど、scalarのコピーのリファレンスってどうやるんだろ。 5分ほど悩んでこれぐらいしか思いつかんかった。 #!/usr/bin/perl -l use strict; use warnings; local $, = q{, }; my @array = (1, 2, …

perlのタイプグロブを使うには

use strict; { no strict 'vars'; my @xxx = (1, 2, 3, 4); local *yyy = \@xxx; print "@yyy\n"; } no strict 'vars' しないと使えなかった。

「if に変数のスコープが必要な理由が分かりません。」

id:amachangが書いてた「if に変数のスコープが必要な理由が分かりません。」だけど たしかにifのスコープ内でlocalした値がif抜けると元に戻って嫌な思いしたことあったけど 冷静に考えてそれで嫌な思いするの一年に一回ぐらいで 普段はだいたいブロックス…

配列Aの各要素に同じ長さの配列Bの各要素をくっつけた配列を出す

わかりにくいので、例を見てください。 @base = (1, 2, 3); @suffix = ("a", "b", "c"); であれば、 ("1a", "1b", "1c", "2a", "2b", "2c", "3a", "3b", "3c") のようになります。もちろん、@base、@suffixは、もっと長い場合もあります。ただし、配列の要素…