Perl

角括弧で配列コピー

http://d.hatena.ne.jp/nishiohirokazu/20080219/1203435874これ、deep copyなのかshallow copyなのかという話。shallowなのでPythonで書けば # perl [ map { &func($foo, $_, $bar) } @{$baz->{quux}} ] は # python [func(foo, x, bar) for x in baz.quux]…

OOP

C:\>perl -e "sub makeCounter { my $class = shift; my $self = {}; bless $self, $c lass; $self->{count} = 0; return $self; } sub push { my $self = shift; $self->{c ount}++; print $self->{count}; return $self; } main->makeCounter()->push()->p…

localがすごい件

教えてもらったことを忘れる前に書く。 C:\>perl -e "$a = {x=>0}; {$a->{x} = 1; print $a->{x};} print $a->{x};" 11 C:\>perl -e "$a = {x=>0}; {my $a->{x} = 1; print $a->{x};} print $a->{x};" Can't use an undefined value as a HASH reference at …

角括弧でアレイのコピーになる

[@a]という構文が出てきてコレは何なのかamachangに聞いたらアレイのコピーなんだって。$b = [@a];で@aがコピーされてそれへの参照が$bに入る。@$bと書いてデリファレンスしてやると同じ内容のアレイであることがわかる。 C:\>perl -e "@a = (1,2,3); $b = […