Emacs org-modeを使ってみる: (35) org-babel-perlを使う1/4

このエントリーをはてなブックマークに追加

今回は,org-babel-perlの使い方を説明する(一回目).
なおUbuntu 8.04 LTSとEmacs22上で, org-6.34c (2010年1月10日リリース)の利用を前提にしている.

インストール

org-6.34c.zip を展開した時にできた org-6.34c/contrib/lisp/ ディレクトリ中の org-babel-init.el および org-6.34c/contrib/babel/lisp/ ディレクトリ以下のファイルを必要とするので,以下のように設定する(load-path の設定は,適切に変更すること).

  (add-to-list 'load-path "/usr/local/src/org-6.34c/contrib/lisp")
  (require 'org-babel-init)
  (require 'org-babel-perl)
  (org-babel-load-library-of-babel)

プログラムを実行した結果の値をorgファイル中に埋め込む

Perl式の結果の値を埋め込む場合,以下のように記述する.

#+BEGIN_SRC perl
  355/113
#+END_SRC

「BEGIN_SRC」の上で「C-c C-c」とタイプすると, perlプログラムが実行され,「END_SRC」の後ろに以下が挿入される.

#+results:
: 3.14159292035398

これは,コロンから始まっているので,エクスポートした場合,「#+BEGIN_EXAMPLE」,「#+END_EXAMPLE」と同様の例示ブロックとなる.
以下のように「:results raw」と指定すると,結果をそのまま挿入できる.

#+BEGIN_SRC perl :results raw
  355/113
#+END_SRC

#+results:
3.14159292035398

これをエクスポートした場合,ソースコードブロックもエクスポートされるが,結果のみをエクスポートしたい場合は,「:exports results」を指定する.

#+BEGIN_SRC perl :results raw :exports results
  355/113
#+END_SRC

#+results:
3.14159292035398

プログラムの出力結果をorgファイル中に埋め込む

式の値ではなく,出力を埋め込む場合は,以下のように「:results output raw」と指定する.

#+BEGIN_SRC perl :results output raw :exports results
  print 355/113;
#+END_SRC

#+results:
3.14159292035398

出力に「|」が含まれている場合, org-modeの表として自動的にフォーマットされる.

#+BEGIN_SRC perl :results output raw :exports results
  @t = (1, 2, 3);
  print "|", join("|", @t), "|\n";
#+END_SRC

#+results:
| 1 | 2 | 3 |