From: matz@... (Yukihiro Matsumoto) Date: 2001-08-21T18:10:38+09:00 Subject: [ruby-list:31036] Re: 安全な文字列の評価方法 まつもと ゆきひろです In message "[ruby-list:31035] 安全な文字列の評価方法" on 01/08/21, 斉藤和樹 writes: |Thread.start{$SAFE=3;p [評価する文字列]} |などとして、出力する値を拾えばいいかと思って試したみましたが、 |$SAFE=3 |では、"gets"なども待ってしまいます。 |$SAFE=4 |だと、グローバル変数すら取れません。 「"gets"なども待ってしまいます」と」「グローバル変数すら取れ ません」の意味が、良く分かんないんですが、 print Thread.start{$SAFE=4; eval str}.value ではまずいってことですか? $SAFE=4では入出力ができませんから、 Thread#valueを使うなどの方法が必要です。