Perl 初心者コーナー Part22
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん
03/04/15 10:15ID:???【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
1:自分はこう言う事がしたい。
2:それでこんな風にやってみたが・・・
3:それだとこんなエラーが出て上手く行かなかった。
最低でも1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。
CGIだけど、なんか質問ある? Part 10
http://pc2.2ch.net/test/read.cgi/php/1048686475/
参考書籍の話題は、【Perl,CGI】参考書籍 第三版
http://pc.2ch.net/test/read.cgi/php/1030209573/
その他の雑多な話題は、【CGIに依存しないPerlの話題一般/Part2】
http://pc.2ch.net/test/read.cgi/php/1030548610/
スクリプトの改造依頼は、【 スクリプト改造工房 PART 6 】
http://pc2.2ch.net/test/read.cgi/php/1047806915/
過去ログやお勧めサイトは >>2-10
0858852
03/05/11 10:58ID:K/IiEdpMおk,十分です、
逝ってきます
0860nobodyさん
03/05/11 11:37ID:???でたでた。
必要性に関しての議論なんてしてないのに、でしゃばってくるやつ。
わからないなら、黙ってれよ。
つーか、それなりに使うロジックだ。
おまえが必要となるケースを経験してねーだけ。プ
ちなみに
% = map{$i++ => $_} @
が定石。
ただし、undefの場合は考慮せず。
0863862
03/05/11 12:21ID:???苦しいけど、こういう手もあるわなw
0865250
03/05/11 12:44ID:???for(0 .. $#aya){
$aya{$_} = $aya[$_] if(not undef $aya[$_]);
}
素直にforつかってりゃいいんでねーの?
0866nobodyさん
03/05/11 13:09ID:???これの方が速度出るんじゃねーの?
0867nobodyさん
03/05/11 15:40ID:IBTMpZAFこれを、「.」「..」,「.*(.htaccessなど)」,ディレクトリ、ファイル
という順番であらわしたいんですが、どうしたらいいでしょうか?
0869nobodyさん
03/05/11 16:00ID:IBTMpZAFソートすると、ディレクトリが優先的に上にこないんですよ。
そこが困ってるんですよ・・・
0870nobodyさん
03/05/11 16:01ID:ZMWn/EPcどうすればいいでしょうか?文字コードはShift_JISです。
0871nobodyさん
03/05/11 16:05ID:???ファイル用の配列とディレクトリ用の配列を両方作って、それぞれにsort。
その上で、ディレクトリ用配列を先に表示すれば?
>870
もうちょっとわかりやすく。
文字のエンコードの事か?
だったらgoogleででも検索しる。
0872nobodyさん
03/05/11 16:08ID:???"%ff%ff"みたいな文字列があったとして、
Perlでそれを標準入出力に読めるような形で
出力するにはどうすればいいんでしょうか?
0873nobodyさん
03/05/11 16:10ID:???0874nobodyさん
03/05/11 16:11ID:???print STDOUT "%ff%ff";
0875nobodyさん
03/05/11 16:17ID:???例えばですね、文字列⇒16進表記、という変換をしてくれるCGIは
Web上にいくつかあります。その逆がやりたいんです。
16進表記と文字コードを指定すると、標準入出力に文字が表示されるような
0876nobodyさん
03/05/11 16:20ID:???jcodeで検索。
0877nobodyさん
03/05/11 16:21ID:???ttp://www.google.com/search?q=Perl+%E6%96%87%E5%AD%97%E3%82%B3%E3%83%BC%E3%83%89+%E5%A4%89%E6%8F%9B&ie=UTF-8&oe=UTF-8&hl=ja&lr=
0879435
03/05/11 16:31ID:???0880nobodyさん
03/05/11 16:44ID:???@files =
map { $_->[0] }
sort { $b->[1] <=> $a->[1] || $b->[2] <=> $a->[2] || $a->[0] cmp $b->[0] }
map { [ $_, /^\./ ? 1 : 0, -d ? 1 : 0 ] }
readdir DIR;
キーワード:
sort map 三項演算子 ファイルテスト演算子 比較演算子
リファレンス 無名配列 Schwartzian Transform
0881nobodyさん
03/05/11 16:48ID:???0882nobodyさん
03/05/11 18:45ID:???一度使っていらなくなった変数は、
メモリ容量の事を考えて初期化したほうがいいですか?
それとも、初期化処理自体が無駄に負荷をかける処理ですか?
(視覚的には初期化したほうが「もう使わない」って分かってグット)
0883nobodyさん
03/05/11 18:56ID:???捨てた方がいいかも。
大抵は、消費量が微小か、要らなくならないんじゃないかな。
0884nobodyさん
03/05/11 19:02ID:IBTMpZAF#!/usr/bin/perl
opendir DIR, ".";
@files = readdir DIR;
splice(@files,1,1);
close DIR;
#################ソート処理#################
sub hikaku{
my($alen) = Length($a);
my($blen) = Length($b);
if ($alen == $blen){return 0;}
elsif ($alen > $blen) {return 1;}
elsif ($alen < $blen) {return -1;}
}
#@files = sort (@files);
############################################
$f = "<td bgcolor=ffffff><font size=2>";
print "Content-Type: text/html\n\n";
print "<html><head>\n";
print "<title>dir</title></head>\n";
print "<body>\n";
print "<br><br><br><br><br><br> ファイル一覧<br>\n";
print "<br><table cellpadding=1 cellspacing=1 bgcolor=dddddd>\n";
print "<tr>${f}ファイル名</td>${f}リンク</td>${f}拡張子</td>${f}サイズ</td>${f}アクセス権</td>${f}最終更新日</td></tr>\n";
#ファイル名を全て取得するまでループ
foreach (@files){
0885続き
03/05/11 19:03ID:IBTMpZAF@stat = stat $_;
#時間の形式を変換
sub time {
$ltime = $stat[9];
($sec,$min,$hour,$mday,$mon,$year,$wdy) = localtime($ltime);
@youbi = ("日", "月", "火", "水", "木", "金", "土");
printf("%04d/%02d/%02d($youbi[$wdy]) %02d:%02d:%02d\n",
$year + 1900,$mon + 1,$mday,$hour,$min,$sec);
}
#パーミッションを8進数に変換
$bin = sprintf("%o",$stat[2]);
$par = substr($bin,2,4);
#パーミッションの桁数調整
if ($par =~ /\d{4}/){$par = substr($par,1,3);}
#拡張子を抜き出す
$i = index($_,"\.");
$index = substr($_,$i++,11);
0886続き
03/05/11 19:03ID:IBTMpZAFif ($bin =~ /40/){$index = "";
$stat[7] = "<font color=red>DIR</font>";}
else{$index = "<font size=2>$index</font>";
}
#テーブルに組み込み出力
print "<tr>${f}$_</td>\n";
print "${f}<a href=$_ target=_top>$_</a></td>\n";
print "<td bgcolor=ffffff>$index</td>\n";
print "${f}$stat[7]</td>\n";
print "<td bgcolor=ffffff align=center><font size=2>${par}</td>\n";
print "${f}\n";
&time;
print "</td></tr>\n";}
print "</table><br>\n";
print "<center><input type=button value=更新 onClick=history.go(0)></center>\n";
ってしたんですけど、これをあまり変えないで、配列2つつくるのは無理そうですね。。
0887nobodyさん
03/05/11 19:13ID:???@pairs = split(/&/,$buf);
foreach $pair(@pairs)
{
($name,$value) = split(/=/,$pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
$value =~ s/</</g;
$value =~ s/>/>/g;
$FORM{$name} = $value;
}
$Msg= $FORM{'MSG'};
print "$Msg";
で表示されないのです。どうすれば表示できるでしょうか?
0888nobodyさん
03/05/11 19:24ID:???テキストエリアを含んでいるformのあたりはどういうソースにしてるの?
0889887
03/05/11 19:42ID:???<form method="POST" action="./test.cgi">
<div>名前:<input type="text" name="NAME"></div>
<textarea type="text" name="MSG" cols="40" rows="4" wrap="soft"></textarea>
<input type="submit" value="送信">
<input type="reset" value="取消">
--CGI側--
#!/usr/local/bin/perl
local($buf);
#入力データ読み出し
if ($ENV{'REQUEST_METHOD'} eq "POST") {
read (STDIN, $buf, $ENV{'CONTENT_LENGTH'});
} else {
$buf = $ENV{'QUERY_STRING'};
}
以下>>887のソースへ
という風になっております。
0890見せかけの善人(コピペ推奨)
03/05/11 19:52ID:???http://www3.ocv.ne.jp/~cochome/kaisetsu.htm#chigai
http://www.autism.jp/l-02-03-aspe3.htm
http://www.geocities.co.jp/Beautycare/5917/as/
●接し方のルールがわからず無邪気に周囲の人に対して迷惑なことをしてしまうこと
がある。人を傷つけるということには鈍感です。年配の先生に向かって「おばあさん
先生おはようございます」と明るい大声で挨拶する生徒もいる。こういった言動をす
る場合にも彼らには悪意はない。
●小さな声でひとり言を言ったり、考えていることを声に出して言うことがある。
●融通が利かないことも学校生活で問題になる。時間割の変更や突然の教師の欠勤と
いう事態で不安を感じたりかんしゃくをおこしたりする。あまりに規則に厳格なため
に、遅刻した同級生に延々と注意をしたり、修学旅行などで消灯時間をかたくなに守
り、他の生徒の顰蹙をかったりすることがある。
●行動・興味・活動のパターンが貧困で反復常同的なことも自閉症の特徴である。すな
わち、日常の活動の様々な面にわたって柔軟性のないルーティン(決まった手順や日課)
を押しつける傾向、これを慣れ親しんでいる習慣や遊びのパターンだけでなく、たいてい
は新しい活動にも押しつける。そしてルーティンや個人的な環境の細部の変化(家の中の
置物や家具の移動によるなど)に対する抵抗がみられることがある。
●揺れる木の葉を見続ける子どもは興味のレパートリーが狭いとも言え、視覚的な敏感さ
があるといっても良い。
●精神遅滞を伴うものと伴わないもので大きく分かれる。100%果汁のオレンジジュー
スを思い浮かべてください。それにだんだん水を加えて薄めて行くと終いには水にごく近
くなる。一口飲んで「オレンジジュースだ!」とわかるものは自閉症、水に近いけれどな
にかオレンジの味が混じっているのがアスペや高機能・・。その濃度はさまざま。濃いオ
レンジジュースであったとしても早期の療育や周りの対応によって水に近づいていくこと
は可能。しかし間違えてはいけないのはオレンジジュースが一滴でも落ちている場合は
「純粋な水」にはなれないのです。
0891nobodyさん
03/05/11 20:02ID:???$value =~ tr/+/ /;
の行に全角の空白文字が混ざってる。
ヘッダをはいてないけど、省略してるだけ?
print "Content-type: text/html\n\n";
0892nobodyさん
03/05/11 20:11ID:???ソートの話しなんですが…。
@data_1;
@data_2; #両方とも中は数字
こんなのがあったとします。
これをごっちゃまぜにして
@data_sort;
の中にソートして入れたいのですが、そうすると「@data_1」が持っていた変数なのか、
「@data_2」が持っていた変数なのか、分からなくなってしまいます。
「@data_sort」の中に入れつつも、その値は元々どちらの変数が持っていた値かを分かるようにする方法はないでしょうか?
0893435
03/05/11 20:16ID:???0894nobodyさん
03/05/11 20:18ID:???超おすすめサイト一覧です☆
http://accessplus.jp/staff/in.cgi?id=10645
http://www.39001.com/cgi-bin/cpc/gateway.cgi?id=neat
http://www.39001.com/cgi-bin/cpc/gateway.cgi?id=pure
http://accessplus.jp/staff/in.cgi?id=10943
http://www.emzshop.com/goodstyle/
0895887
03/05/11 20:30ID:???ヘッダは省略してるだけです。説明不足ですみません。
全角スペースは、CGIのソースには含まれていなかったので、
ここに書き込むときにでも発生したのかもしれません。
textarea以外のinput等に入力されたデータはちゃんと表示されています。
0896nobodyさん
03/05/11 20:36ID:pspablfq記事番号、パスワードが入力するとtextareaやらに表示させる、
ってトコまではできました。
しかしそこからログファイルの配列とファイルの書きこみ操作がよく分かりません。
ログが全部消えてしまったりします。
ログファイルの変更箇所だけを上書き、というはどうやればいいのでしょうか?
分かりにくい文章ですが、宜しくお願いします。
0897nobodyさん
03/05/11 20:47ID:???ログファイルの一行を変えたいならファイルの中身を一行ずつ配列に入れ(もちろんすべて)、
修正したい行が入っている要素だけ書き換える。
あとは配列の中身をファイルに上書き。
0898892
03/05/11 20:55ID:???なんとか工夫して頑張ってみます。
0900477
03/05/11 23:24ID:???2次の配列を作って表示させてるんですが
--------------------------------------
@gyou1 = (
['photo','pic','scan'],
['ph0001','pic001a','scan001'],
['ph0002','pic001b','scan002a'], 〜56行続く
);
@gyou2 = (
['photo','pic','scan'],
['ph1001','pic101','scan101a'],
['ph1002','pic102','scan101b'], 〜70行ほど続く
);
for ($i = 0; $i <= 56;i++){
print "$gyou1[i][1]";
}
for ($j = 0; $j <= 56;j++){
print "$gyou2[j][1]";
}
--------------------------------------
こんな感じに表示させているんですが、凄まじく重くて・・・、
一片に表示させずa herefみたいなのでページ切り替えさせたいんですけれど
方法がわかりません、
ここのCGIみたく任意の記事番号をハイフンで繋ぐだけで見せてくれる仕組みが
ヒントになりそうだけどソース見れないし・・・
なにかないでしょうか?
あと、ついでですが、データ内包するよりログファイルから引き出す方が処理早いでしょうか?
できれば教えて下さい、
0901nobodyさん
03/05/11 23:43ID:???今日もCGIの質問が多いなぁ〜・・・(´ー` )
0902nobodyさん
03/05/12 00:14ID:???微妙な質問カモン
0903nobodyさん
03/05/12 00:55ID:???> ページ切り替えさせたいんですけれど方法がわかりません
やりたい事を実現するには具体的にどんな「情報」が
必要か考えてみれ。まず表示を開始する行番号が
必要だよな? 後は?
> データ内包するよりログファイルから引き出す方が処理早いでしょうか?
実際に試せ。コード書いて調べろ。その方が人に聞くより早い。
0904nobodyさん
03/05/12 01:56ID:722KG0lcLocationではうまくいかないんですが他にジャンプさせる
命令語ありますか?
0905nobodyさん
03/05/12 01:58ID:Uc7D0G4o先月分126620円入金されました。
リンクスタッフの登録はメアドと任意のパスワード
を入力すれば完了。メアドは無料メールでも可。
http://accessplus.jp/staff/in.cgi?id=10645
0906nobodyさん
03/05/12 02:56ID:???http://pc2.2ch.net/test/read.cgi/php/1045091733/
http://pc2.2ch.net/test/read.cgi/php/1048686475/
0909nobodyさん
03/05/12 09:38ID:K6tDiGbjprint ゙aiueokakikukeko\n゙;
ってのが複数でてくる場合
変数aに置き換えて$aとするのと
サブルーチンaにして&a;とするのではどうかわるのですか?
0910nobodyさん
03/05/12 11:59ID:???0911908
03/05/12 12:05ID:K6tDiGbjサブルーチンだったら展開に時間がかかるってことですか?
複数の処理の場合はサブルーチン、一個の処理の場合は変数ということでしょうか?
0912nobodyさん
03/05/12 12:08ID:???0913nobodyさん
03/05/12 12:11ID:???0914nobodyさん
03/05/12 12:13ID:???サブルーチンの場合、一回実行するごとにスタックがつまれてメモリを食う。
その分、若干時間も食う。
この場合はどうのこうのと言うより、自分で考えろ。
0915nobodyさん
03/05/12 12:25ID:K6tDiGbjありがとうございます。極端な話、すべて変数にしちゃってもいいですかね?
>>914ためしたんだけどあまりかわらないような…
メモリを食うというのは初めて知りました。大変参考になりました
0917nobodyさん
03/05/13 00:29ID:sfojkvp6サンクス
0919918
03/05/13 02:34ID:???0920nobodyさん
03/05/13 02:35ID:???0921nobodyさん
03/05/13 02:46ID:???perl/tkをwinでちょっとやってみようと思い、マズは色んなサイト見てみる事にしました。
で、以下のコードをとあるサイトからパクって来ました。
$top = MainWindow->new();
$button = $top->Button( -text => 'EXIT', -command => \&exit );
$button->pack();
MainLoop();
これ、正常に動いたのですがなにがなんだか意味が分かりません。全く分かりません。
リファレンスとか、無名のなんたらを使ってるって事は分かったのですが…。
tkのプログラミングをを専門に解説してるサイトが一向に見つかりません。
リファレンスの説明をしているサイトは見つかったのですが、
「tkの記述を」まるで初心者におしえるかのごとく細かく丁寧に、そして多量に書いているサイトはないでしょうか?
クソみたいな質問ごめんなさい。
0922nobodyさん
03/05/13 02:51ID:???http://www.oreilly.co.jp/index/perl/
0924921
03/05/13 02:58ID:Lt5m0lm7すみません…。
本買う前に一通り調べてって言うかちょっとやってみてから決めたいんです。
>>923
そ、そうですか?
まだイロイロ調べてみます。汗
でも、なんか良さげなの知ってたら書いてくれると嬉しいです。
0925bloom
03/05/13 03:10ID:rppJJuu/0926_
03/05/13 03:15ID:???http://www.yoshiwara.susukino.com/moe/jaz08.html
http://yoshiwara.susukino.com/moe/jaz10.html
http://www.yoshiwara.susukino.com/moe/jaz03.html
http://yoshiwara.susukino.com/moe/jaz09.html
http://www.yoshiwara.susukino.com/moe/jaz06.html
http://yoshiwara.susukino.com/moe/jaz05.html
http://www.yoshiwara.susukino.com/moe/jaz01.html
http://yoshiwara.susukino.com/moe/jaz02.html
http://www.yoshiwara.susukino.com/moe/jaz07.html
http://yoshiwara.susukino.com/moe/jaz04.html
0930nobodyさん
03/05/13 21:19ID:o+SfWHf30931nobodyさん
03/05/13 21:57ID:???0932nobodyさん
03/05/13 22:00ID:???(grep(/$key/, @data) ←こんな感じで)
検索キーに"ー"が含まれている時に500エラーになるようなんです。
一応jcode.pl使ってsjisにエンコードしているのですが・・・
原因は何でしょう?
0933nobodyさん
03/05/13 22:02ID:???0934nobodyさん
03/05/13 22:02ID:???eucなら だいじょうぶだよ
0935nobodyさん
03/05/13 22:39ID:???二度目以降に見つけてもシカトするという条件があります。
@num = (19,20,55,63);
@list = (ketu63,etu63,a55hoi,hoi55,asdf63,a2a0,huga19,cool20);
for(@list){ @ans=grep(/$_$/,@num); }
↑のように書いてみたんですが
@ans = (huga19,cool20,hoi55,ketu63)
となって欲しいのに
@ans = (19,20,55,63)
となってしまうのです。
文字列の末尾をチェックして文字列全体を返したいのですがどのようにしたらいいでしょうか
よろしくです
0937nobodyさん
03/05/13 23:13ID:???> for(@list){ @ans=grep(/$_$/,@num); }
> ...
> @ans = (19,20,55,63)
> となってしまうのです。
@num の要素を grep してんだから当然だわな。
http://flex.ee.uec.ac.jp/texi/perl/perl_47.html
my @num = (19,20,55,63);
my @list = qw(ketu63 etu63 a55hoi hoi55 asdf63 a2a0 huga19 cool20);
my @ans = ();
for my $num (@num) {
for my $str (@list) {
$str =~ /$num$/ or next; # @list の末尾に @num がある時だけ
push @ans, $str; # @ans にぶち込む
last; # 二度目以降はシカト == 最初に見つかったものだけ
}
}
print join '/', @ans; # huga19/cool20/hoi55/ketu63
0938nobodyさん
03/05/13 23:14ID:???これでどっすか?
もっと簡単になりそうだけど、自分にはこれしか思いつかんかった。
%key = ();
$key{$_}++ foreach (@num);
foreach $v (@list) {
$v =~ /(\d+)$/ or next;
if ($key{$1}) {
undef $key{$1};
push(@ans, $v);
}
}
0939935
03/05/13 23:25ID:???ありゃ?寝ぼけてました。正直云うと気付きませんでした
937氏の方法で幸せになれました
938氏の方法は今から試してみます。
ありがとでしたー
0940nobodyさん
03/05/13 23:55ID:???伝統だね〜。しみじみ。
0942nobodyさん
03/05/14 07:28ID:???japu氏とか_gunzip氏とかどこに行ったんだろうな。
実はファンだったのだが。
レベルダウンは構わないんじゃないか?
ここは初心者スレだし。
>>1にもあるように「一緒に勉強」するスレだ。
0943nobodyさん
03/05/14 08:03ID:???0944nobodyさん
03/05/14 14:41ID:???つまり、
0,FOO,236
1,BAR,145
2,HOG,487
3,FUG,352
となってるCSVファイルを、3列目でソートして、
1,BAR,145
0,FOO,236
3,FUG,352
2,HOG,487
というように表示したいのですが・・・
0946nobodyさん
03/05/14 16:12ID:???while(<F>){
$hash{(split(/,/))[2]}=$_;
}
close(F);
foreach (sort {$a<=>$b} keys %hash){
print $hash{$_};
}
0948nobodyさん
03/05/14 18:04ID:???chomp;
($tmp1, $tmp2, $tmp3) = split (/,/, $_);
$data{$tmp1} = [$tmp2, $tmp3];
}
@tmp = sort { $data{$a}->[1] <=> $data{$b}->[1] } keys %data;
print $_. ','. $data{$_}->[0]. ','. $data{$_}->[1]. "\n" foreach (@tmp);
exit;
__END__
0,FOO,236
1,BAR,145
2,HOG,487
3,FUG,352
・・と、俺も作ってみる。
ちなみに、タブ部分は見やすいように全角スペース。
0949nobodyさん
03/05/14 18:05ID:???今回に限らず、データの前提条件をはっきりさせないと
やり方も変わってくるよ。
・1桁、3桁、3桁の固定長なのか?
・各フィールドはユニーク値なのか? など
実際にその4つのデータなら>>946が書いてくれた方法でできるが、
もっとデータがあって3列目に同じ値があったらダメだし。
0950nobodyさん
03/05/14 18:17ID:???while (<DATA>) {
chomp;
($tmp1, $tmp2, $tmp3) = split (/,/, $_);
$data{$.} = [$tmp1, $tmp2, $tmp3];
}
@tmp = sort { $data{$a}->[2] <=> $data{$b}->[2] } keys %data;
print $data{$_}->[0]. ','. $data{$_}->[1]. ','. $data{$_}->[2]. "\n" foreach (@tmp);
exit;
__END__
0,FOO,236
1,BAR,145
2,HOG,487
3,FUG,352
・・・と、各値がユニーク値だった時のために修正とかもしてみる。
ちなみに、やっぱりタブは全角スペース。
0951nobodyさん
03/05/14 18:49ID:???という条件は、以下であってると思ったのですが、どうも違うようです。。。
どうしてだめなのでしょうか?
m/^[,\n\r]*$/gm){
0952nobodyさん
03/05/14 19:18ID:???if ($_ =~ /^,+$/) {
print $.. "行目マッチ!\n";
next;
}
print $.. "行目クリア\n";
}
exit;
__END__
,,,,
,1,1,1
,,,,,,
aaa,aaa,aa,
・・・と、作ってみる。
改行は普通ではマッチしない。
で、例の如くタブは全角ス(ry
0953nobodyさん
03/05/14 21:45ID:???/m … ^ が「全ての行頭」、$ が「全ての行末」にマッチ
/s … ^ が「文字列の先頭」、$ が「文字列の末尾」にマッチ
0954nobodyさん
03/05/14 22:05ID:???正規表現道場@2ch Part2
http://pc2.2ch.net/test/read.cgi/php/1038146241/l50
0955nobodyさん
03/05/15 00:00ID:???0956nobodyさん
03/05/15 00:06ID:???0957nobodyさん
03/05/15 16:12ID:???perl5.6でXMLにチャレンジしてみようと思って、
#!/usr/bin/perl
use strict;
use Jcode;
use XML::Parser;
my $topic;
while($line = <STDIN>)
{
$topic .= $line;
}
my $xml = new XML::Parser(Style => 'Debug',ProtocolEncoding=>'x-euc-jp-unicode');
my $result =$xml->parse($topic);
こんな感じでXML文書を読み込ませてみたら、途中で、
Substitution loop at /usr/lib/perl5/site_perl/5.6.1/i386-linux-thread-multi/XML/
Parser.pm line 346, <STDIN> line 75.
こんなエラーが出ます。エラーの出る行には日本語が入っています。
日本語非対応かなと思っていろいろ試してみると、たとえば「◇」のような文字が
含まれているとだめだったりするようです。(だめなのはこれだけではなさそう)
やりたいのは、perlで日本語のXML文書を読み込むことです。
その読み込みの時点ではまってしまうので困っています。
別に文字コードがeucである必要はないし、モジュールもXML::Parserを使うことにこだわりないです。
この辺のことを処理するにはどうすればいいでしょうか?
レス数が950を超えています。1000を超えると書き込みができなくなります。