Drkcore

24 09 2007 perl Tweet

型グロブをいまいちちゃんと理解してないっぽい

型グロブで悩むの巻

*a = sub {1+2}

が$a->()でなくて

a() # 3

なのがいまいちわからない。

$ perlsh
main[82]$ $a = 5
5
main[83]$ $b = \$a
SCALAR(0x984e018)
main[84]$ *a
*main::a
main[85]$ *a{SCALAR}
SCALAR(0x984e018)
main[86]$ ${*a{SCALAR}}
5
main[87]$ $$b
5

ということは $b = \$a = *a{SCALAR}だからリファレンスベースで考えていけばいいのかな、、、、

$ $a = [1,2,3,4]
ARRAY(0x984e048)
main[89]$ @$a
1
2
3
4
main[90]$ *b = $a
*main::b
main[91]$ @b
1
2
3
4

とこんな感じ。

実用Perlプログラミングにグロブはハッシュを使って実装されてると書いてある。

ProductName 実用Perlプログラミング
サイモン カズンズ
オライリージャパン / ¥ 3,360 (2006-03)
通常24時間以内に発送

main[92]$ $a = [1,2,3]
ARRAY(0x9989060)
main[93]$ $b = {a => 3}
HASH(0x99890c0)
main[94]$ *c = $a
*main::c
main[95]$ *c = $b
*main::c
main[96]$ @c
1
2
3
main[97]$ %c
a
3

なんかrefの型にマッチさせてハッシュっぽくしてる感じだ。

でもまだちゃんと掴みきってないナァ。あと第2版は1章に小難しい話題を入れてる割にはページが少ないのでちょっとアレ。実用Perlプログラミング的には一章100pぐらいあって充実されてるほうが嬉しい。

About

  • もう5年目(wishlistありマス♡)
  • 最近はPythonとDeepLearning
  • 日本酒自粛中
  • ドラムンベースからミニマルまで
  • ポケモンGOゆるめ

Tag

Python Deep Learning javascript chemoinformatics Emacs sake and more...

Ad

© kzfm 2003-2021