# refer_01.pl
# 各種リファレンス値
  
$num = \12345 ;
$cha = \"飛鳥" ;
$var = \$ax ;
$ary = \@by ;
$has = \%cz ;
sub abc { }
$sbr = \&abc ;
  
print <<EOF;
  $num : 12345
  $cha : 飛鳥
  $var : \$ax
  $ary  : \@by
  $has   : \%cz
  $sbr   : \&abc
EOF
  

# refer_02.pl
# 各種リファレンス値の変化
  
$var = \$ax ;
$arr = \@by ;
$has = \%cz ;
sub abc { }
$sss = \&abc ;
  
print <<EOF;
\n  変数名のみ
  $var : \$ax
  $arr  : \@by
  $has   : \%cz
  $sss   : \&abc
EOF
  
$ax = 10 ;
@by = (R, G, B) ;
%cz = (1101, "青山") ;
sub abc {print "123" }
  
$var = \$ax ;
$arr = \@by ;
$has = \%cz ;
$sss = \&abc ;
  
print <<EOF;
\n  値を定義
  $var : \$ax
  $arr  : \@by
  $has   : \%cz
  $sss   : \&abc
EOF
  
$ax = 50 ;
@by = (C, M, Y, K) ;
%cz = (1102, "小川") ;
sub abc {print "xyz" }
  
$var = \$ax ;
$arr = \@by ;
$has = \%cz ;
$sss = \&abc ;
  
print <<EOF;
\n  値を変更
  $var : \$ax
  $arr  : \@by
  $has   : \%cz
  $sss   : \&abc
EOF
  

# refer_03.pl
# デリファレンスの表示
  
# 各値の定義
  $a = "\n「クレタ人は嘘つきだとクレタ人は言った。」" ;
  @b = ("1.嘘つき ", "2.嘘つきでない ", "3.判定不能") ;
  %c = (T => $b[0], F => $b[1], X => $b[2]) ;
  sub d {print "\t\t = 数学パラドックスより = \n" }
  
# リファレンス化
  $var = \$a ;
  $ary = \@b ;
  $has = \%c ;
  $sub = \&d ;
  
# デリファレンスした結果
print <<EOF;
$$var  
(@$ary)
  答:$$has{X}    
EOF
&$sub
  

# symbol_01.pl
# 連鎖的変数の表示
  
$A02 = "A01" ;
$A03 = "A02" ;
$A04 = "A03" ;
$A05 = "A04" ;
  
print <<EOF;
$A05
$$A05
$$$A05
$$$$A05
EOF
  

# symbol_02.pl
# 成績の表示
  
# 個人データ
  $AOYAMA = "青山  霞" ;
  $KASUMI = "AOYAMA" ;
  
  $SHIRASE = "白瀬  藍" ;
  $AI = "SHIRASE" ;
  
  $SOUKAI = "滄海  澪" ;
  $REI = "SOUKAI" ;
  
# 成績表
  $TOP = "REI" ;
  $SEC = "KASUMI" ;
  $THI = "AI" ;
  
# 結果の表示
print <<EOF;
\n 今回の1位は $$$TOP さんでした。
\n 今回の2位は $$$SEC さんでした。
\n 今回の3位は $$$THI さんでした。
EOF
  

# symbol_03.pl
# ローマ字による入力
  
# 個人データ
  $KASUMI = "青山  霞" ;
  $TOU  = "小川  橙" ;
  $AI  = "白瀬  藍" ;
  $REI = "滄海  澪" ;
  
# ローマ字による入力
  print "\n 誰のデータを表示しますか : " ;
  $name = <STDIN> ;
  chomp $name ;
  
# 漢字での応答
  print "\n $$name さんのデータを表示します。\n"