« Japanize インストール済の Safari で apple.com/downloads にアクセスすると落ちる件 | メイン | swifty - 高速な共有メモリキャッシュ »
2007年07月18日
Perl の正規表現が破壊的でイヤだなと思った件
いちいち変数定義して、
my $s = "Hello, World\n"; $s =~ s/Hello/Goodbye/; print $s;
とか書くのにあきてきたので、
sub ndes (&@) { my $code = shift; my @a = map { local $_ = $_; $code->(); $_; } @_; wantarray ? @a : $a[0]; }
と、まとめてみました。これで、
print ndes { s/Hello/Goodbye/ } "Hello, World\n"
とするだけで「Goodbye, World」が表示されるように。でもとっても再発明 (あるいは遠回り) のにおいがします。どうすれば、より better なんでしょうか。
投稿者 kazuho : 2007年07月18日 17:30
トラックバック
このエントリーのトラックバックURL:
http://labs.cybozu.co.jp/cgi-bin/mt-admin/mt-tbp.cgi/1403
このリストは、次のエントリーを参照しています: Perl の正規表現が破壊的でイヤだなと思った件:
» Kazuho@Cybozu Labs: Perl の正規表現が破壊的でイヤだなと思った件 from これはすごい
いちいち変数定義して、 my $s = "Hello, World\n"; $s =~ s/Hello/Goodbye/; print $s; とか書く... [続きを読む]
トラックバック時刻: 2007年07月18日 21:08
コメント
List::MoreUtilsのapplyでもいけます
投稿者 kazeburo : 2007年07月18日 18:09
おぉ。助かります。オレオレライブラリを回避することができました。
投稿者 kazuho : 2007年07月19日 03:25