Higher-Order Perl P.333-334
# vim:set ts=2: use strict; use warnings; use YAML; sub cmap (&) { my $f = shift; my $r = sub { my @result; for (@_) { push @result, $f->($_); } @result; }; return $r; } sub cgrep(&) { my $f = shift; my $r = sub { my @result; for (@_) { push @result, $_ if $f->($_); } @result; }; return $r; } sub weblog { return ( +{referer => "slashdot.jp" }, +{referer => "slashdot.com" }, +{referer => "google.jp" }, +{referer => "yahoo.jp" }, +{referer => "hatena.ne.jp"}, ); } my $double = cmap { $_ * 2 }; my @aa = $double->(1..5); print "\@aa=@aa\n"; my $find_slashdot = cgrep { $_->{referer} =~ /slashdot/i }; my @bb = $find_slashdot->(weblog()); print "\@bb=\n"; print Dump \@bb; __END__ @aa=2 4 6 8 10 @bb= --- - referer: slashdot.jp - referer: slashdot.com
+{...} の意味
- 検索しにくくてこれが何だったのか悩んでたけれどようやく再発見
たとえば、新しいハッシュを作って、それへのリファレンスを返す関数が欲しければ、 以下のような選択肢があります:
sub hashem { { @_ } } # silently wrong sub hashem { +{ @_ } } # ok sub hashem { return { @_ } } # okその一方で、以下のようにすることもできます:
sub showem { { @_ } } # ambiguous (currently ok, but may change) sub showem { {; @_ } } # ok sub showem { { return @_ } } # ok先頭にある +{ や {; が、その式が実際には ハッシュのリファレンスなのかブロックなのかの 曖昧さを除去するためにあります。
http://perldoc.jp/docs/perl/5.8.8/perlref.pod
なんかネットワークが繋がらない・・・
"Bringing up interface eth0: Device eth0 does not seem to be present, delaying initialization"
- 日経Linux3月号の記事を元にFedora化した - 半端な日記
- /etc/udev/rules.d/70-persistent-net.rules のアドレスが正しいこととデバイスの数があってること確認。eth0しかないのにeth1も書いてあるとか
- あなたの中で 「うわっ!こんなサービスウェブで無料公開してる.. - 人力検索はてな