Memoize |
BasicWerk
EC Support
Technique
Facebook
|
20141120204710_Perl_hash_or_block |
|
Perl_hash_or_block
Perl では無名ハッシュもコードブロックも { } で表現するので、コンパイラに明示的にどちらなのか伝えたい場合があるかも知れない。 また、コードを誰かが見た時、はっきりと見分けられるようにしたいとか。
#! /usr/bin/perl
use warnings;
use strict;
# 明示的に無名ハッシュのつもりで { } を使うと
# コンパイラに伝えたい場合は +{ } と書く
my @members = (
+{
name => 'John',
age => 34,
},
+{
name => 'Sam',
age => 24,
},
);
print $members[0]->{name}, "\n";
# -> John
# { } がコードブロックであると明示的に示したい場合は
# 最初に ;(何もない文) を置いて {; } のようにする。
{;
my $cnt = 0;
sub counter {
++$cnt;
print "$cnt\n";
}
}
counter();
# -> 1
counter();
# -> 2
counter();
# -> 3
|
| © Shin Nakamura/BasicWerk 2014 |