💡

PerlのREPL

2021/09/26に公開

はじめに

PythonのREPL、便利ですよね。私もちょっとした四則演算なんかはちゃちゃっとPythonのREPLでやっちゃいます。
今回は、Perlでも標準で同じようなことができる、という紹介です。

基本操作

以下でデバッグモードを起動します。
> perl -de0

起動したら、DB<1>の後にp+スペースを入力し、適当な計算を試してみます。

 DB<1> p 1+2+3*4/5
5.4

答えが返ってきましたね。

応用

変数を使って計算してみます。

 DB<2> $drink = 100
 DB<3> $food = 500
 DB<4> p $drink + $food
600

期待通りの結果です。

配列の構造を見てみます(急に)。
次の例では、pではなくxを使用しています。こうすることで配列の添字が表示されます。

 DB<5> x @rray = qw(apple orange banana)
0  'apple'
1  'orange'
2  'banana'

Xコマンドを使用するとより明確かもしれません。引数に構造を展開したい配列の名前を指定します。

 DB<6> X rray
@rray = (
   0  'apple'
   1  'orange'
   2  'banana'
)

二次元配列だとこんな感じです。

 DB<7> @rray = ([qw(apple orange banana)], [qw(kiwi grape cherry)])
 DB<8> X rray
@rray = (
   0  ARRAY(0x2766e9c)
      0  'apple'
      1  'orange'
      2  'banana'
   1  ARRAY(0x27603a4)
      0  'kiwi'
      1  'grape'
      2  'cherry'
)

ハッシュでの見え方も確認してみます。

 DB<9> $mumei = {ichiro => 10, jirou => 9, saburou => 8}
 DB<10> X mumei
$mumei = HASH(0x2766dc4)
   'ichiro' => 10
   'jirou' => 9
   'saburou' => 8

便利ですよね。

最後にREPLの終了方法を書いておきます。qです。

 DB<11> q

まとめ

Perl標準REPLの使い方をかんたんに紹介しました。
これだけでも便利に使えますが、もっともっとヘビーにPerlのREPLを使いたいという方は、Replyを試してみたらよいと思います。

Discussion