ITCのアドベントカレンダー22日目です。
歴史的にスカスカで号泣してんすけど、こんな記事でもいいので何か書いてください…

read, eval, print, loop, yay! ただしReadlineが効かないって話

問題

冒頭で既に書きましたがReplyを入れただけではREPLでReadlineが効かないことがあります。

1
2
3
4
5
6
7
8
0> my $hogehogeunko = 'aaaaaaaa'
$res[0] = 'aaaaaaaa'

1> print $hi^[[D
👆ア?

2> ^[[A^[[A^[[A^[[A^[[A^[[A
👆ア?

Term::ReadLineがデフォルトで入っているので問題ない気がしますが、コレは罠でTerm::ReadLine::Gnuも入れないと動いてくれません(は?)。

解決

Term::ReadLine::Gnuを入れましょう。

1
2
# あるいはcpanfileにでも
cpanm -nq Term::ReadLine::Gnu

Readlineパッケージは既に入ってると思いますが無ければ入れておきましょう。

1
2
# ArchLinuxの場合 ほかはしらん
sudo pacman -Sy readline

以上。Tab補完したりとか矢印キーで履歴見たりとかできるようになります。