トップ «前の日記(■2003-09-04) 最新 次の日記(■2003-09-06)» 編集

どんぞこ日誌

2003|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|07|08|12|
2007|01|04|08|12|
2008|01|02|03|04|06|07|08|10|11|12|
2009|01|02|04|05|06|07|08|09|11|12|
2010|01|03|04|07|08|10|11|12|
2011|01|02|03|04|05|06|07|08|10|12|
2012|01|02|03|05|06|07|08|09|10|
2013|01|02|07|08|09|
2014|08|09|
2015|08|
2016|06|07|12|
2017|01|03|08|
2018|03|
2022|03|

同人関連(どんぞこ楽屋) | 旧い雑文   


■2003-09-05 Inlineを試してみる

* [CGI] Wmidiの修正B!

 wmidi.cgiは指定したアドレスが存在していることを確認してから曲をつくるのですが、ドメイン名に数字が含まれていると無条件でエラーが出てしまってました。今は直っています。>Wさん、ご指摘ありがとうございました。

* [Perl] Perlの中でRubyを利用するB!

 で、wmidi.cgiのソースを見てもらいますと、ページのヘッダを取得する部分が美しくないのでNet::HTTP等のモジュールを使いたいところです。でもモジュールをインストールするのが面倒だったので代わりにInline::Rubyをいれてみました。Inlineは、Perlのスクリプト内に他の言語を入れられるようにするモジュールです。これでRubyのnet/httpを呼び出せます。残念なことに私の環境では関数の定義がうまくいかないので、evalで直接記述してみます。下記は簡単な使用例です。

use Inline::Ruby qw(rb_eval); 関数のインポート
$host = 'donzoko.net'; $path = '/index.html'; $status = rb_eval qq{ # Ruby Code
require 'net/http' response = nil Net::HTTP.start('$host'){ |http| response = http.head('$path') } response.code
};
これで$statusに200が入っています。InlineシリーズにはCやJava、Python、Baisc等々色々あります。
[]