Perl ⇔ Python ⇔ Ruby

Python, Ruby でコーディングする際に躓いた Perl ならわかるんだけど… な事柄のハウツー。2008-06-18 更新。Special thanks to ミラクル組。

リンク

文字列操作の比較表: Ruby, Python, JavaScript, Perl, C++
http://0xcc.net/blog/archives/000137.html
配列操作の比較表: Ruby, Python, JavaScript, Perl, C++
http://0xcc.net/blog/archives/000043.html

バージョン番号

コマンドライン

Perl
$ perl -v
This is perl, v5.10.0 built for x8664-linux-gnu-thread-multi
いっぱい
$ perl -V
Summary of my perl5 (revision 5 version 10 subversion 0) configuration:
もっといっぱい
$ perl -e 'print $],"\n"'
5.010000
Python
$ python -v
Python 2.5.2
$ python -c 'import sys; print "%d.%d.%d" % sys.versioninfo[:3]'
2.5.2
$ python -c 'import sys; print "%d.%d" % sys.versioninfo[:2]'
2.5
Ruby
$ ruby -v
ruby 1.8.7 (2008-05-31 patchlevel 0) [x8664-linux]

標準モジュールパスの表示

コマンドライン

Perl
$ perl -e 'print map {"$\n"} @INC'
/etc/perl
/usr/local/lib/perl/5.10.0
/usr/local/share/perl/5.10.0
/usr/lib/perl5
/usr/share/perl5
/usr/lib/perl/5.10
/usr/share/perl/5.10
/usr/local/lib/siteperl
.
$ perl \
-V:installsitearch \
-V:installsitelib \
-V:installvendorarch \
-V:installvendorlib \
-V:installarchlib \
-V:installprivlib
installsitearch='/usr/local/lib/perl/5.10.0';
installsitelib='/usr/local/share/perl/5.10.0';
installvendorarch='/usr/lib/perl5';
installvendorlib='/usr/share/perl5';
installarchlib='/usr/lib/perl/5.10';
installprivlib='/usr/share/perl/5.10';
Python
FIXME: Python 2.5(?) には vendor-packages もあるみたい。
$ python -c 'import sys; print sys.path'
['', '/usr/lib/python25.zip', '/usr/lib/python2.5', '/usr/lib/python2.5/plat-linux2', '/usr/lib/python2.5/lib-tk', '/usr/lib/python2.5/lib-dynload', '/usr/local/lib/python2.5/site-packages', '/usr/lib/python2.5/site-packages', '/usr/lib/python2.5/site-packages/Numeric', '/usr/lib/python2.5/site-packages/PIL', '/var/lib/python-support/python2.5', '/var/lib/python-support/python2.5/gtk-2.0']
$ python -c 'from distutils.sysconfig import getpythonlib; print getpythonlib()'
/usr/lib/python2.5/site-packages
Ruby
$ ruby -e 'puts $LOAD_PATH'

モジュール検索パスの追加

環境変数

Perl
$ export PERL5LIB='/site/lib/perl'
Python
$ export PYTHONPATH='/site/lib/python'
$ echo '/site/lib/python' >/usr/lib/python2.5/site-packages/site.pth
Ruby
$ export RUBYLIB='/site/lib/ruby'

スクリプト

Perl
use lib '/site/lib/perl';
Python
import sys
sys.path.append("/site/lib/python")
import site;
site.addsitedir('/site/lib/python')
Ruby
puts $LOAD_PATH.push("/site/lib/ruby")

add to hatena hatena.comment (0) add to del.icio.us (0) add to livedoor.clip (0) add to Yahoo!Bookmark (0) Total: 0

2個のコメント

  1. 2008-06-18 01:29 に投稿 | パーマリンク

    ふみやす師匠、おひさしぶりです。

    以下、お役に立てれば幸いです。

    標準モジュールパスの表示 $ ruby -e ‘puts $LOAD_PATH’

    モジュール検索パスの追加(スクリプト) $ ruby -e ‘puts $LOAD_PATH.push(“/site/lib/ruby”)’

  2. 2008-06-18 05:13 に投稿 | パーマリンク

    ふみやすさん、どうもです。

    python だと、以下の方法でも可能だと思います。

    モジュール検索パスの表示 python -c ‘import sys; print sys.path;’

    モジュール検索パスの追加(スクリプト) python -c ‘import sys; sys.path.append(“/site/lib/python”); print sys.path’

コメントを書く

Your email is never shared. * 印の項目は必須項目です。

*
*