参照
概要
- ハッシュへの参照のテスト
ソース
-
testRef.pl
# ハッシュへの参照のテスト use strict; use warnings; use utf8; use Encode; binmode( STDIN, ':encoding(CP932)' ); binmode( STDOUT, ':encoding(CP932)' ); binmode( STDERR, ':encoding(CP932)' ); my $refHash = {}; p(); $refHash->{'distance'} = {}; p(); $refHash = func( $refHash ); p(); $refHash->{'distance'}{'value'} = 5; p(); $refHash = func( $refHash ); p(); sub p { my $dist = $refHash->{'distance'} && $refHash->{'distance'}{'value'} || -1; printf( "%d\n", $dist ); } sub func { my( $r ) = @_; if ( ref( $r ) eq 'HASH' && ref( $r->{'distance'} ) eq 'HASH' && $r->{'distance'}{'value'} ){ $r->{'distance'}{'value'} *= 2; } return $r; } # EOF
出力結果
-1
-1
-1
5
10