Perl日記

日々の知ったことのメモなどです。Perlは最近やってないです。

2012-05-01から1ヶ月間の記事一覧

サブルーチンプロトタイプ(&)にしたらサブルーチンを渡せと怒られた

いや渡したんですどね。 サブルーチンプロトタイプ(&)を定義してるサブルーチンに 無名サブルーチンを変数に入れて渡したら怒られたんですよ。 use strict; use warnings; use utf8; sub run(&@) { my ($cb, @list) = @_; @list = map ++$_, @list; $cb->(@l…

shift,shiftの罠

おやと思ったのでメモ。 sub point { my $x = shift; my $y = shift; ... } point(20, 30); #=> $x = 20, $y = 30 これはいい。 sub point { my ($x, $y) = (shift, shift); ... } point(20, 30); #=> $x = 20, $y = 30 これもまだわかる。 sub run { shift-…

なんでもPSGIで考えるのはやめようという話【5/25追記しました】

昔作ったCGIでこんなのがあった。(あの頃は若かった) #!/usr/bin/perl use Furl; my $furl = Furl->new; use CGI; print CGI->header; print "<html>\n"; print "<head>\n"; print "<title>image</title>\n"; print "</head>\n"; print "<body>\n"; for my $i (1..10) { # 画像ファイル名 $image_fi</body></html>…

__PACKAGE__::hoge()は間違い

タイトルで終わった。 __PACKAGE__->hoge()の__PACKAGE__はコンパイラがカレントパッケージ名に置換してくれるけれど、 「::」をつかって完全修飾でサブルーチンを呼ぶと__PACKAGE__::hoge()の左側は「__PACKAGE__」というパッケージ名ととられるのでエラー…

ScanSnapでスキャンしたPDFをページごとに回転する

ScanSnapを使ってコミックスをスキャンしてPDFにしている。 縦に紙をセットするよりも、横にした方がスキャンが早く終わるのでそうしているけれど、 そうするとPDFが横向きになって、向きも表裏でばらばらになる。 ScanSnapを買うとAdobe Reader Professiona…

UNITCHECKと他復習

Perl5.10からBEGIN、CHECK、INIT、ENDの特別ブロックにUNITCHECKが追加されていたのを昨日知ったのでメモ。 あとそのほかまとめ復習。 perlmodにあったのを並び替えてみた。 #!/usr/bin/env perl # use 5.010; # begincheck BEGIN { print " 1. BEGIN blocks…

読み込んだモジュールを全削除するClass::Unload::Allというのを書いてみた

前回の若干続き。 @aloelightさんからClass::Unloadなるものがあることを教えてもらった。 http://search.cpan.org/~ilmari/Class-Unload-0.07/lib/Class/Unload.pm podに use Class::Unload; use Class::Inspector; use Some::Class; Class::Unload->unload…