無名サブルーチン

昨日初めて知ったのだけど、
これを使えばRubyのブロックっぽいことができるのかな?と思って実験してみた。

#!/usr/bin/perl
auto_open_close("hogehoge", sub { my $fh = shift;
  my @lines = <$fh>;
  print @lines
});
sub auto_open_close() {
  my $fpath = shift;
  my $proc  = shift;
  open(FH, $fpath) or die $!;
  $proc->(FH);
  close(FH);
}

上手くいったみたいだけど、"sub"とか"my $fh = shift"がちょっと邪魔だなぁ。
上達すればすっきり書けるのかしら。


w3mから書き込んだら改行が消えてた…ので修正。
tDiaryに書き込んだときは問題なかったのだけど。