トップページ⇒php
1001コメント321KB

Perlコーディング初心者質問スレ Part 48

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/04/26(水) 18:00:50ID:RLbnve1J
Perlのコーディングで困ってる人のスレです。

【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。

1: 自分はこういう事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。

最低でも1と3が無いと誰も答えられないよ。
ソース貼る時は、全角スペースでインデント忘れずに。
良い回答は良い質問から。一緒に勉強しましょう。

過去ログやお勧めサイトは >>2-10
0153nobodyさん2006/05/06(土) 08:42:44ID:???
書くならこうかしらん。

my $mode = get_mode();
my $action = [undef, \&do_1, \&do_2, \&do_3]->[$mode] or error();
$action->();

>>152
オブジェクト指向以外で、いい書き方ある?
0154nobodyさん2006/05/06(土) 09:22:34ID:???
> オブジェクト指向以外で、いい書き方ある?

どんな書き方をオブジェクト指向としたいのか明確にしてよ。
0155nobodyさん2006/05/06(土) 09:29:06ID:???
まぁ、なんと言うかPerl臭い書き方ですな
0156nobodyさん2006/05/06(土) 09:47:31ID:???
> まぁ、なんと言うかPerl臭い書き方ですな

KENT 臭い書き方ということ?
0157nobodyさん2006/05/06(土) 09:52:54ID:???
KE●Tは多分こんな感じ

if($mode eq 'write'){ &write; }
0158nobodyさん2006/05/06(土) 09:59:47ID:???
KENTさんの方が分かりやすいな。
0159nobodyさん2006/05/06(土) 10:38:27ID:???
その局面でわざわざ hash にする意図が分からん。

my $action = 'do_' . $cgi->param('action');
eval {
no strict 'refs';
$action->();
};
0160nobodyさん2006/05/06(土) 10:46:49ID:???
>>154
パッケージ作って、blessした変数を使う方法全般。
Perlっぽいとしたら、こんなのとか。

my $mode = get_mode();
my $do = "do_". $mode;

my $obj = Local_table->new();
$obj->$do();
exit;

package Local_table;

sub new { return bless {}, shift }

sub do_1 {}
...

sub AUTOLOAD {
use vars qw($AUTOLOAD);
my $self = shift;
my $name = $AUTOLOAD;
$name =~ s/.*:://;
error("not implemented $name");
}

sub DESTROY {}

# 書いてたら、>>159に似てる…。
0161nobodyさん2006/05/06(土) 12:36:26ID:???
ずっとKENT風に書いてきた・・・
渡された変数名の関数を呼べばKENT風に書かなくてもいいのか。 なるほど。
でも、存在しない関数を呼び出されそうな場合のトラップはどうすればいいだろ?
その関数が存在するか調べてたらKENT風に書くのと対して変わらんし・・
0162nobodyさん2006/05/06(土) 13:46:28ID:???
eval と $@ で十分じゃん。
0163nobodyさん2006/05/06(土) 14:37:39ID:???
eval と $@ で十分じゃんって言われても分からんかったので調べた・・・

evalの中で関数呼び出して、evalを抜けた直後の$@がNULLだったらエラー無しか
なるほど
これはいいかもしんない
0164nobodyさん2006/05/06(土) 15:04:02ID:???
>>162-163
詳しく!!!
0165nobodyさん2006/05/06(土) 15:13:21ID:???
詳しくも何も >163 のまんまじゃねーか…
0166nobodyさん2006/05/06(土) 15:40:56ID:???
初心者スレなんだからKENT風でいいんじゃね?
リファレンスを使うのはポインタでつまずくC言語みたいだし、
evalはうっかりダブルクォートで変数を使ったりするとアレな事があるし。
0167nobodyさん2006/05/06(土) 15:44:49ID:???
最後の変数を〜 の部分がわからない
なんか不具合でも?

携帯だから調べらんねorz
0168nobodyさん2006/05/06(土) 16:07:17ID:???
レベルの高低ではなく、初心者が読んで勉強にならないようなレスは
このスレ的に糞レス。
上級者気取りのPerlerの腕自慢スレじゃないんだぞ☆

>>162-163
kwsk
0169nobodyさん2006/05/06(土) 16:10:27ID:???
>>168
(´・ω・)(・ω・`)ネー
0170nobodyさん2006/05/06(土) 16:12:28ID:???
ぐぐると一番上にでてくる物すら読めないのかよ
0171nobodyさん2006/05/06(土) 16:58:36ID:???
@ とか $ ってぐぐれないだろ
0172nobodyさん2006/05/06(土) 17:01:22ID:???
うん
0173nobodyさん2006/05/06(土) 17:07:20ID:???
全くひどい話だ
0174nobodyさん2006/05/06(土) 17:15:25ID:???
こ
0175nobodyさん2006/05/06(土) 17:18:17ID:???
Perlコーディング””初心者質問スレ”” Part 48
0176nobodyさん2006/05/06(土) 17:27:05ID:???
まぁ俺だけかもしれないけど
別言語に移植しやすいように書くよう心がけてます
0177nobodyさん2006/05/06(土) 17:29:31ID:???
"perl eval"でぐぐれば、出てくるがな。
0178nobodyさん2006/05/06(土) 17:37:48ID:???
if ($mode eq 'test1') { &test1; }
elsif ($mode eq 'test2') { &test2; }
elsif ($mode eq 'test3') { &test3;}

&main;

test.cgiにそのままアクセスされたらサブルーチンmainを表示
test.cgi?mode=test1でアクセスされたらサブルーチンtest1を表示したいのですが

実際やってみても全てmainが表示されてしまいます、どうしたらいいんでしょうか。。。
0179nobodyさん2006/05/06(土) 17:40:22ID:y5pDzvYJ
age忘れ
0180nobodyさん2006/05/06(土) 17:40:52ID:qaiuXg8a
古い掲示板スクリプトで、

&jcode::sjis($value);

とかやって、外から入ってきたデータの文字コードをshiftjisにしてますが、
これを今のEncodeモジュールを使って表現するとどうなるんでしょうか?
0181nobodyさん2006/05/06(土) 18:02:24ID:???
>>178
else{ &main; }
サブルーチン名にmainを使ってる点はあえてスルーした
01821782006/05/06(土) 18:14:42ID:y5pDzvYJ
>>181
if ($mode eq 'test1') { &test1; }
elsif ($mode eq 'test2') { &test2; }
elsif ($mode eq 'test3') { &test3;}
else { &main; }

にしたんですが、、やっぱりmainの内容が表示されてしまいます…
$modeの定義方法が悪いのでしょうか…

test.cgi?test1と書いたらtest1の内容がちゃんと表示されました

むー…
0183nobodyさん2006/05/06(土) 18:14:56ID:???
>>178

>test.cgi?mode=test1

これで test1 が $modeに入るわけないけど、そこらへんの理解は大丈夫だよね?
0184nobodyさん2006/05/06(土) 18:16:28ID:???
>>168
少し上に調べて理解できた初心者がいるのに、お前が理解できないのはただの怠慢。
0185nobodyさん2006/05/06(土) 18:23:04ID:???
>>184
嘘を嘘と見抜けない人は(ry
01861782006/05/06(土) 18:23:50ID:y5pDzvYJ
>>183
はあ…確かにそうですよねえ
でもKENT氏のCGIとか見てもよくわからない…

そこらへんの理解が大丈夫そうじゃないですorz
0187nobodyさん2006/05/06(土) 18:23:54ID:???
あーもう分かったからソース全部どっかのあげてみろや
01881782006/05/06(土) 18:31:07ID:y5pDzvYJ
>>187
http://read.kir.jp/file/read45847.zip
アップしました
表示分岐テスト用に作ってあるだけなので内容は短いです
0189nobodyさん2006/05/06(土) 18:33:09ID:???
>>188
いきなり

> #$mode = $ENV{'QUERY_STRING'};
に吹いたw 何でコメントアウトしてあるんだよw
0190nobodyさん2006/05/06(土) 18:39:43ID:???
ワロス
01911782006/05/06(土) 18:41:01ID:y5pDzvYJ
>>189
それを入れるとtest.cgi?test1になってしまうからですかね…

どうやったら$modeをきちんと認識させられるでしょうか...
0192nobodyさん2006/05/06(土) 18:44:54ID:???
http://x-web.pobox.ne.jp/fcgi/fcgi_index.html

ここでも音読してなさい
あんまいいサイトとは言えないけど
0193nobodyさん2006/05/06(土) 18:46:06ID:???
$modeには mode=test1 が入らないか?(試してないから分からんが)
そしたら = でsplitして後は好きなように料理すればいいじゃん
0194nobodyさん2006/05/06(土) 18:53:46ID:???
use CGI qw(param);

my %mode_map = map { $_ => 1 } qw(test1 test2 test3);
my $mode = param('mode') || '';
$mode_map{$mode} ? $mode->() : main();

これでいい気がする。
01951782006/05/06(土) 18:59:44ID:???
>>192
ありがとうございます、参考にしますm(__)m

>>193
ありがとうございます

>>194
ためしにやってみたらできました!


みなさん本当にありがとうございました

これで目的のものを作っていけます
0196nobodyさん2006/05/06(土) 19:10:10ID:???
>>194
あるかどうか調べるためだけにハッシュを用意するなら>>151でいいじゃん
0197nobodyさん2006/05/06(土) 22:10:22ID:5YeEOpS5
#!/usr/local/bin/perl

$countdat = "count.dat";#カウンターログファイル
$ipdat = "ip.dat";#IPログのファイル

open (IP, "+<$ipdat");
flock(IP, LOCK_SH);

$iplog = <IP>;
$ip = $ENV{ 'REMOTE_ADDR' };

if( $ip eq $iplog ){
seek(IP, 0, 0);
print (IP $ip);
close (IP);
}
else{
open (DATA, "+<$countdat");
flock(DATA, LOCK_SH);

$count = <DATA>;
$count++;

seek (DATA, 0, 0);
print(DATA $count);
close(DATA);

print (IP $ip);
close (IP);
}
exit;
0198nobodyさん2006/05/06(土) 22:11:24ID:5YeEOpS5
IPが重複していたらカウントしないような、カウンターを
作りたくて上記のようにうってみたのですが、エラーが出て
しまい、うまく動作しません。何が間違っているか自分では分からないので
教えてもらえたらと思います。
0199 ◆TWARamEjuA NGNG
エラーメッセージも何も示されていないのでよく判りませんが、2行目に

use Fcntl qw(:flock);

を入れてみるとか。
0200nobodyさん2006/05/06(土) 22:51:37ID:???
>>198
エラーってまさか「Internal Server Error」とかじゃないよね・・・?
0201nobodyさん2006/05/06(土) 22:56:46ID:???
>>199で確かにエラーは消えるが…はてさてフフーン
0202nobodyさん2006/05/06(土) 23:01:55ID:???
標準出力に何も吐かないCGI
0203nobodyさん2006/05/06(土) 23:11:11ID:???
>>202
ソレダ!!
0204nobodyさん2006/05/06(土) 23:20:24ID:5YeEOpS5
すみません。説明不足でした。
裏で処理させるだけのものってことでお願いします・・・。
>>200
Internal Server Errorなのか分からないです。
分かることだけ書いてみます。
・パーミッションは実行権限与えてます。【755】
・呼び出してはいるみたいですが、実行できていないため
ファイルも作成されていません・・・・。
0205nobodyさん2006/05/06(土) 23:30:26ID:???
>>204
まだ説明不足です。
0206nobodyさん2006/05/06(土) 23:32:02ID:???
> Internal Server Errorなのか分からないです。

エラーが出るのではなかったの?
CGI Wrap Errorみたいなのに過剰に優しく包まれてしまってるの?

ついでに。
http://pc8.2ch.net/test/read.cgi/php/1104624784/2
0207nobodyさん2006/05/06(土) 23:40:44ID:???
>>205
とりあえず、自力でもっと頑張ってみます。
質問に答えてくれてありがとうです。
0208nobodyさん2006/05/07(日) 00:25:58ID:???
なんでエラーログぐらい貼ろうとしないのよ・・・

実行できてないのが分かってるなら文法エラー
エラーログにエラーとなる原因の行が書かれてるからその1行を書く
エラーがごっそり出てる場合は、たとえばCGIにアクセスした時間が00:00:50とするなら、
エラーログで00:00:50の時間帯のエラーの最初の1文を貼り付ければいい
念のため2〜3行でもいいし

とにかくエラーログを貼らないとどうにもならないです
0209nobodyさん2006/05/07(日) 00:36:16ID:NJ/WTSjH
1: サイト内検索の設置を目論み
2: http://siriasu.s10.xrea.com/cgi/wsrch/wwwsrch.htmのサンプルを設置してみました
3: こんな感じになりました
 ・フォームに半角カナがあると文字化けを起こして検索できない
 ・検索がきちんと行われてもヒントとして表示される文が文字化けを起こす

Shift-JISのファイルを検索したいのですがどなたかコーディング&アドバイスお願いします
0210nobodyさん2006/05/07(日) 00:47:39ID:???
>>209
改造のお話なので、どっちかのスレに移動してください。

・ヒントをもらいながら自力でがんばる場合はこっち
★三 【 スクリプト改造工房 PART 9 】 ★三
http://pc8.2ch.net/test/read.cgi/php/1143834740/1+3

・何かとよろしくお願いしてしまう場合はこっち
【 スクリプト改造依頼スレ 】(丸投げ) part5
http://pc8.2ch.net/test/read.cgi/php/1141174205/1+3
0211nobodyさん2006/05/07(日) 00:48:45ID:NJ/WTSjH
>>210
分かりました
0212nobodyさん2006/05/07(日) 01:02:55ID:???
>>197
悪癖をこじらせたまま成長して欲しくないのでざっと目視添削してみます。

1. 特に理由がなければ常に -w スイッチ(あるいは可能なら use warnings)を使いましょう。
# できれば use strict も使いましょう。

2. flock() で文字列定数を使うときには...>>199

3. CGI.pm の利用を検討しましょう。大丈夫、案外怖くないです。

4. or die などを用いて open (と flock, seek)の返り値を確認しましょう。
# サンプル用に省略してたなら失礼。

5. "+<" モードでは存在しないファイルを開けません。前もってファイルを用意しておくか sysopen() を使いましょう。

6. print(FH $output) ではなく print FH ($output) と書きましょう。間接オブジェクトスロットの記法に注意しましょう。

7. サーバにアップロードする前に、最低限 -wc スイッチを用いたチェックをクリアーしましょう。

がんばれ。
02132122006/05/07(日) 01:13:44ID:???
s/文字列定数/定数/; # 訂正。寝ぼけてましたごめんなさい。
0214nobodyさん2006/05/07(日) 01:50:30ID:???
こういう具体的なポイントを示してくれるのってすごくありがたい。
参考にさせてもらうよ
0215nobodyさん2006/05/07(日) 02:12:23ID:uQfuojW8
Win32::OLEを使ってperlでWordの文書を印刷しようと考えています。
一応本(VBA)とネットの情報で、ローカルで実行して動くものはできました。
ただこれを、同じPCにApache入れてCGIとして動かすと動作が止まってしまいうまくいきません。
Apacheのエラーログには何も残らず、Wordが強制的に中断されたような状態になってしまいます。
行き詰まってしまって全く手がかりがつかめません。
どなたか、ご教授願えませんでしょうか。

# 一応Content-type書いてないとかそういうミスはないと思います。
0216nobodyさん2006/05/07(日) 02:36:06ID:uQfuojW8
なんかデーモンをAn httpdってやつにしたら動きました。。。
すれ違いの質問っぽいので向こうで聞いてきます。。。
0217nobodyさん2006/05/07(日) 11:10:27ID:YyQiWuCM
はじめまして。
掲示板を作りたくてperlについて学び始めた者です。
で、そのための学習書に沿って学ぼうとしてるんですけどperlのサンプルファイルがうまく起動しなくて困ってます。
ファイルを立ち上げても、一瞬ウィンドウが開いてすぐに消えてしまうからです。
原因のわかる方、対処法を教えてください。よろしくお願いします。
0218nobodyさん2006/05/07(日) 11:20:12ID:???
>217
その説明ではエスパーでないと原因が分からないと思います。
0219nobodyさん2006/05/07(日) 11:23:26ID:???
>>217
どのOSか知らんがコマンドラインから実行してみな
perl sample.pl
0220nobodyさん2006/05/07(日) 11:26:57ID:???
恐らく関連付けでサンプルを実行してるかと思われ
なので219さんが言う通りにやってみるとよい
02212172006/05/07(日) 11:35:33ID:YyQiWuCM
コマンドラインについて調べた上でやってみたらうまくいきました。
219さん、ありがとうございますm(_ _)m
でも直接立ち上げるにはどうしたらいいかわかります?
やっぱり少し不便なんでアドバイスもらえるとありがたいです。
0222nobodyさん2006/05/07(日) 11:40:21ID:???
1.perl で GUI を開発できる環境
2.常にコマンドプロンプトを起動しておく
3.Apache を入れる
0223nobodyさん2006/05/07(日) 11:41:57ID:???
いずれかをどうぞ

コマンドプロンプトを起動しておいたままってのが一番簡単かな
0224nobodyさん2006/05/07(日) 11:45:26ID:???
俺ならCopal2をすすめるけど。
練習にはコマンドプロンプト起動よりずっと良いし、CGIじゃなければそのまま使い続けられる。
UTF8のスクリプトに対応していないのが残念だが、練習レベルでは関係ないし。
0225nobodyさん2006/05/07(日) 11:50:35ID:???
>>212
197に書かせてもらった本人です。
これを参考にもう一度見直してみます。
エラーの内容が分かったらまた書かせてもらうかもです。
ありがとうございます。
0226nobodyさん2006/05/07(日) 12:00:24ID:???
AnHTTPdが簡単でいいんじゃないのかな?

AnHTTPd・設定
http://penguin.nakayosi.jp/windows/anhttpd.html

AnHTTPdの設定のドキュメントルート欄にsample.plの入っているパスを書く。(例えば、c:\Perl\eg)
ブラウザ(IEとか)のアドレス入力欄に”http://127.0.0.1/sample.pl”と入力してエンター。
0227nobodyさん2006/05/08(月) 12:15:35ID:???
>>217
@echo off
perl %*
pause

とかなんかそういう内容のバッチを書いて拡張子 ".pl" に関連付けるがいい。自己責任で。w
ちなみに cmd.exe 限定。command.com な人はちょっと違ってくるので注意な。
0228nobodyさん2006/05/08(月) 15:30:46ID:SAcZGaHh
クッキーが書き込めないよう(つд‘)
テンプレートをHTML::Templateを使用して出力しているのですが、
クッキーをヘッダに書きだすにはどうすれば。。。?

use strict;
use CGI;
use HTML::Template;

my $q = new CGI;
my $cookie = $q->cookie(-name=>'TEST', -value=>"cokkietest", -expires=>'+1h');
print $q->header( -type => 'text/html' -charset => 'EUC-JP', -cookie => $cookie);

my $tmpl = HTML::Template->new(filename => 'test.html');
$tmpl->param(TESTNAME => 'クッキー書けない');
print "content-type: text/html\n\n";
print $tmpl->output();
0229nobodyさんNGNG
(゚Д゚)ハァ?
0230nobodyさんNGNG
誤爆スマソー
0231nobodyさん2006/05/08(月) 15:56:32ID:???
>print "content-type: text/html\n\n";
いらなくね?
0232nobodyさん2006/05/08(月) 15:58:49ID:???
>>228
手元のマシンでヘッダを吐くところまで、一度実行してみるといいよ。
0233nobodyさん2006/05/08(月) 20:54:56ID:???
>>225
原因が分かりました。
標準出力に何も表示させないとエラーが出るみたいです。
なので、
print "Content-Type: text/html\n\n";
print "$count\n";
を付け加えて、CSSでvisibility: hidden;で隠せばエラーが出ず
ファイルをうまく作成してカウントしてくれるみたいです。
最後に、質問に答えてくれてありがとうございます。
0234nobodyさん2006/05/09(火) 02:28:53ID:sSrkJPdW
1: Shift-JISで書かれたページで文字コードをEUC-JPに変換
2: &jcode::convert(\$word, "euc");
3: ひらがなや漢字のみのケースでは変換されましたが
  半角カナのみのケースや半角カナだけのケースでは変換されませんでした
0235nobodyさん2006/05/09(火) 03:15:24ID:???
>>234
へぇ、そうなんだ。
0236nobodyさん2006/05/09(火) 03:56:51ID:sSrkJPdW
>>235
マジっす。
&jcode::convert(\$word, "euc");
してから再度Shift-JISに変換したら今度は文字化けします。
02372102006/05/09(火) 04:44:28ID:???
>>234,236

↓別の人?
http://pc8.2ch.net/test/read.cgi/php/1143834740/43 に行ったここの>>209
http://pc8.2ch.net/test/read.cgi/hp/1143690384/253 で俺を召喚してる人
0238nobodyさん2006/05/09(火) 09:06:41ID:???
多分ここら辺だろうね。

・厳密にはShift_JISに半角カナは含まれない。
・Shift_JISで使う半角カナのコードはEUC-JPの漢字コードと被ってる。

よってノーマルのjcode.plの自動判別に半角カナは使えない。
入力する文字コードを指定するか、jcode.plを自分でカスタマイズする。
0239nobodyさん2006/05/09(火) 09:15:01ID:???
フセチー をsjisで保存してeucとして開くと・・・
0240nobodyさん2006/05/09(火) 09:24:13ID:???
>>239
どんな下ネタが飛び出すかとドキドキしたよw
0241nobodyさん2006/05/09(火) 12:05:05ID:???
なんか釣られた気分いっぱいだorz
0242nobodyさん2006/05/09(火) 12:20:31ID:???
・・テ・ユ・・・テ・ユ・・ェ。ェ
0243nobodyさん2006/05/09(火) 12:25:16ID:???
しねばいいとおもった
0244nobodyさん2006/05/09(火) 18:03:51ID:???
質問です

#!/usr/bin/perl
#use CGI::Carp qw/fatalsToBrowser/;
use LWP::Simple;
use XML::Simple;
$xml = XMLin(get('http://weather.livedoor.com/forecast/rss/24/42.xml'));
print 'Content-Type: text/html; charset=utf-8', "\n\n";
print $xml->{'channel'}->{'item'}->[1]->{'title'};

1.ローカルで実行した時に
  "Wide character in print at〜"と出るのを消したい

2.XREAに置いた時、エラーになって動作しない
  2行目のCGI::Carpのコメントアウトを外すと正常に動作します
  なぜでしょうか?

お願いします
0245nobodyさん2006/05/09(火) 18:16:35ID:KHJc4thI
ちょっとは、お役に立てるかな?
http://www.yukinko-net.jp/computer/download/downloadlist.htm
0246nobodyさん2006/05/09(火) 19:28:10ID:???
>>244
1.はSTDOUTのレイヤを適切に指定してやればいいと思われる。
utf-8で出したいようなので、例えば

binmode STDOUT, ':utf8';

をprintする前に実行。

2はオレにはよくわからん。
0247nobodyさん2006/05/09(火) 19:34:14ID:???
2はモジュール入ってないだけじゃね?
02482442006/05/09(火) 19:55:29ID:???
>>246
ついさっきまでローカルで実行してた時は 1. の表示は出なかったんですよね
急に出たんです。なんででしょう。

>>247
CGI::Carpのコメントアウトを外せばちゃんと正常に表示されるので
モジュールは入ってると思います
0249nobodyさん2006/05/09(火) 23:39:05ID:???
>>248
XREA使ってるし、 use CGI::Carp qw(fatalsToBrowser); を
使ったりコメントアウトしたりもしてるけど、それが原因でコケたことはないです。

コードがBOMつきのUTF-8で書かれてるとCGI Wrap Errorが出るかも。
hoge.cgi(例)を hoge.cgid にリネームしてアクセスしたら詳細が出ますよ。
0250244NGNG
>>249
ありがとうございます
could not find ParserDetails.ini in /usr/local/lib/perl5/site_perl/5.8.3/XML/SAX
って出ました。別のパーサー使えば治りそうなのか…な?
スクリプトファイルの文字コードはASCII文字列だけなので、特にはありません。
バイナリエディタで確認してもBOMは付いてなかったです。

Wide〜のエラーが出るのは何なんでしょうね?
02512442006/05/09(火) 23:56:34ID:???
ちょっと調べてみたら
XMLパースの時点でutf8フラグが付いてますね
これ無くすオプションみたいなのないんでしょうか
0252nobodyさん2006/05/10(水) 00:09:53ID:???
Wide〜のほうは>>246さんのレスや
ttp://www.pure.ne.jp/~learner/program/Perl_unicode.html#widechar
この辺で。

XMLパーサー方面は詳しくないのでよくわからないのですが、
自分が使ってるs73のXML::RSSは機嫌よく動いてくれてます。
■ このスレッドは過去ログ倉庫に格納されています