作者: KIMURA Koichi
日時: 2009/2/08(12:58)
Bruce.です。

追ってまとめでも書きますが、

ねこ丸 さんは書きました:
>   ねこ丸です。
> 
>   脱線ですが。
> 
> 藤岡和夫 writes:
> 
>> ShiftJISを使うのなら、Rubyは重要ですよね。Perl5.6時代にRubyに移った人も
>> 多いと思いますね。これからはUTF-8になってしまうから、ShiftJISを使う必要
>> 性は限りなく低下しつつある。問題はファイルシステムとコマンドラインだけ。
> 
>   これって 1.9 時代も通用するんですかね。まだ試したことないんですが。
> 
>   個人的には Ruby 1.9 はこの間ようやく VirtualBox 上の Debian lenny に
> 入れてみたけど、まだ入れただけ。
> 
> # -Ks なコードで動いている(自分が書いたんじゃない)システムは今後どう
> # したらいいんだろうなぁ。あれ怖いなぁ。

1.8までのイメージでやって痛い目に遭う人がこれから続出すると思います。
改良の方針ではありますが、少なくとも1.9.1ではファイル名の取り扱いが
UnicodeのAPI使っていないので、存在しているはずのファイルが開けない。
というのがかんたんに起こります。
まあこれは今までも同じですけど。
そして、Perlでよく訊かれるエラー(警告)となったWide charaterがどうのという
能登同じように、文字列のエンコーディングが〜という質問が頻発するでしょうね。

また、-Kオプションは「廃止」ですので

Usage: ruby19\bin\ruby19.exe [switches] [--] [programfile] [arguments]
  -0[octal]       specify record separator (\0, if no argument)
  -a              autosplit mode with -n or -p (splits $_ into $F)
  -c              check syntax only
  -Cdirectory     cd to directory, before executing your script
  -d              set debugging flags (set $DEBUG to true)
  -e 'command'    one line of script. Several -e's allowed. Omit
[programfile]
  -Eex[:in]       specify the default external and internal character
encodings
  -Fpattern       split() pattern for autosplit (-a)
  -i[extension]   edit ARGV files in place (make backup if extension
supplied)
  -Idirectory     specify $LOAD_PATH directory (may be used more than once)
  -l              enable line ending processing
  -n              assume 'while gets(); ... end' loop around your script
  -p              assume loop like -n but print line also like sed
  -rlibrary       require the library, before executing your script
  -s              enable some switch parsing for switches after script name
  -S              look for the script using PATH environment variable
  -T[level]       turn on tainting checks
  -v              print version number, then turn on verbose mode
  -w              turn warnings on for your script
  -W[level]       set warning level; 0=silence, 1=medium, 2=verbose
(default for
 level)
  -x[directory]   strip off text before #!ruby line and perhaps cd to
directory
  --copyright     print the copyright
  --version       print the version

この通り。

ruby 1.8.6 (2007-03-13 patchlevel 0) [i386-mswin32]
Usage: ruby [switches] [--] [programfile] [arguments]
  -0[octal]       specify record separator (\0, if no argument)
  -a              autosplit mode with -n or -p (splits $_ into $F)
  -c              check syntax only
  -Cdirectory     cd to directory, before executing your script
  -d              set debugging flags (set $DEBUG to true)
  -e 'command'    one line of script. Several -e's allowed. Omit
[programfile]
  -Fpattern       split() pattern for autosplit (-a)
  -i[extension]   edit ARGV files in place (make backup if extension
supplied)
  -Idirectory     specify $LOAD_PATH directory (may be used more than once)
  -Kkcode         specifies KANJI (Japanese) code-set
  -l              enable line ending processing
  -n              assume 'while gets(); ... end' loop around your script
  -p              assume loop like -n but print line also like sed
  -rlibrary       require the library, before executing your script
  -s              enable some switch parsing for switches after script name
  -S              look for the script using PATH environment variable
  -T[level]       turn on tainting checks
  -v              print version number, then turn on verbose mode
  -w              turn warnings on for your script
  -W[level]       set warning level; 0=silence, 1=medium, 2=verbose
(default)
  -x[directory]   strip off text before #!ruby line and perhaps cd to
directory
  --copyright     print the copyright
  --version       print the version

いけね。1.8.7にしとこw


-- 
木村浩一/KIMURA Koichi
 I thought what I'd do was, I'd pretend I was one of those deaf-mutes or
shoud I?
 mail kbk at kt.rim.or.jp
 web  www.kt.rim.or.jp/~kbk/zakkicho/index.html