2013年 9月 29

前にRubyの勉強会に参加した時に irb を教えてもらって、便利だったのでPerlでも同じようなことが出来ないかググったら出来るみたい。

Perl5 で REPL(Read-Eval-Print-Loop)をつかいたければ、perl -de 1 をつかえばいい。

  DB<1> $x = 1;
  DB<2> print $x;
1

ただしレキシカルスコープが保存されないとの事。

my $x = 1;
print $x;

が正しく動作しない。

で、解決法として Eval::WithLexicals が紹介されている。付属の tinyrepl コマンドを使えばレキシカルスコープが使える。その代わりにグローバル変数を使うと怒られる。

$ tinyrepl
re.pl$ $x = 1;
"Error!"
"Global symbol \"\$x\" requires explicit package name at (eval) line 1, <FIN> line 1.\nBEGIN not safe after errors--compilation aborted at (eval) line 3, <FIN> line 1.\n"

コマンドラインでちょっとコードを試したい時とかに使うくらいなので、レキシカルスコープとか要らないかな。で、面倒なので ipl コマンドで perl -de 1 が使えるようにしておく。Pathが通っている場所に

$ vi ipl

#!/bin/sh
perl -de 1

$ chmod +x ipl

ってコマンド作っておく。

すぐに追記: postしたらすぐに教えて頂いた。最近ではreplyっていうのがおすすめらしい。

perlのREPL近状 – やわらかコード

なるほどググると情報ありますね。あとで試してみよう。

More from my site

  • MAMPな環境のmacにDBD::mysqlをインストールMAMPな環境のmacにDBD::mysqlをインストール OSX El Capitan(10.11.5) MAMPのバージョン 3.0.7.3 ※1 MySQLのバージョン 5.5.38 MAMPだとWarning (mostly harmless): No library found for […]
  • Minillaを触ってみるMinillaを触ってみる cpanm Minilla minil new My::Mod My-Modディレクトリが作られてその中にモジュールのテンプレートがさくせいされる。 githubにあたらしいリポジトリを作る App::phつかうと便利らしいので入れる。 ディレクトリ名でリポジトリが作られる p5-my-mod […]
  • [Perl] DBIx::Class(DBIC)でtimestamp的なカラムの自動更新[Perl] DBIx::Class(DBIC)でtimestamp的なカラムの自動更新 今更ながらDBIx::Class(DBIC)に入門。使い始めてDBICの作法に翻弄されてる。 timestamp的なカラム、例えばupdated_atカラムを自動更新させるのにハマったのでメモ。 03日目: データモデル から抜粋 package Jobeet::Schema::ResultBase; use strict; use warnings; use […]
  • print <<EOM;〜EOMの中にperlの式を書くprint <<EOM;〜EOMの中にperlの式を書く ヒアドキュメントの中でPerlの式を書く print <<EOM; あいうえお かきくけこ EOM こんなのをヒアドキュメントという(らしい) この中にperlの式を埋め込むテクニック。 リンク先より引用 print <<EOM; TIME: @{[ time() ]} EOM 実行結果 TIME: […]
  • Minillaを使ってMojoliciousプラグインを開発するMinillaを使ってMojoliciousプラグインを開発する 1. Mojoliciousプラグインの雛形作成 $ mojo generate plugin MyPlugin カレントディレクトリに Mojolicious-Plugin-MyPlugin というディレクトリ名で雛形作成される。 2. ドキュメントにAuthor情報を追記する。 $ cd ./Mojolicious-Plugin-MyPlugin $ vi […]
  • Perlの環境をperlbrewからplenvにしたらscraperコマンドがインストールされなくて困ったPerlの環境をperlbrewからplenvにしたらscraperコマンドがインストールされなくて困った plenvをhomebrewでインストールしたから? 新しいユーザー作成 gitでplenvインストール Web::Scraperインストール やはりscraperコマンド使えない...。 $ find ~/ -name […]

Filed under: perl

Trackback Uri



コメントする