再帰?は難しい - 刺身☆ブーメランのはてなダイアリー で関数の再帰呼び出しが難しいとこぼしていたら id:amachang さんが 再帰で local を使う - IT戦記 というエントリで教えてくれました。ありがとうございます。 読んでもやっぱり頭の中で追えなかったので、コピペして動かしてみたらなんとなくわかったような気がしてきました(わかった、といえるほど自信はない。。) 「再帰の中で最初の一回だけ [] が作られる local なので、再帰を抜けると消える」の一文がわからなくて、 print してみたら、同じ配列リファレンスのようなので「最初の一回だけ」という意味がわかった。 sub hash_recursively { # 省略 # 再帰の中で最初の一回だけ [] が作られる # local なので、再帰を抜けると消える print "a ", $main::_links, "\