[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 2chのread.cgiへ]
Update time : 05/09 21:18 / Filesize : 139 KB / Number-of Response : 547
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Perlについての質問箱 35箱目



1 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 16:01:21 BE:176880454-DIA(100004)]

"The duct tape of the Internet" こと、Perlについての質問箱です。
"There's more than one way to do it" ということで、
Perlの奥深さについて皆で語り合い、追求してまいりましょう。

CGIについての質問は板違いです。WEBプログラミング板でどうぞ。
CGIとPerlの区別がつかない人もWEBプログラミング板に行ってください。
( WEBプログラミング板 pc11.2ch.net/php/ )

CGIの質問は答えが Perlと全然関係ない話に帰着する場合が
多かったりするのでWEBプログラミング板に行って聞いたほうが得ですよ。
このスレでは(CGI以外の)純粋にPerlのみに関係する質問を取り扱っていこうと思います。
スレ違いの質問にはスルーか、速やかな誘導をお願いします。

www.perl.org/get.html
● 2008/04/20 現在の最新版: 5.10.0
● 2008/04/20 現在の開発版: 5.9.5

▼ 前スレ
Perlについての質問箱 34箱目
pc11.2ch.net/test/read.cgi/tech/1199977642/


191 名前:デフォルトの名無しさん [2008/05/22(木) 03:09:43 ]
自分が何をしたいのか、わかりません。

てか?

192 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 03:15:25 ]
そもそも何で perl をやろうとしたのかって話だ

193 名前:デフォルトの名無しさん [2008/05/22(木) 03:50:29 ]
プログラムって何かを作るためにある道具であって
何を作るかは作り手が考えなきゃどうしようもなかろう。

194 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 04:11:01 ]
>>189
適当なフリーのCGI等をダウンロードして
辞書的に使える本(Google先生でもOK)で調べながら
ソースを読んでみる。

ある程度理解できるようになったら、それを少しだけ改造してみる。

これを繰り返すだけでも相当勉強になると思うよ。

195 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 09:02:43 ]
ネットに転がってるperlで書かれたCGIやCGI解説本のソースはほぼ100%クズなので
初心者はそんなものを見てはいけない。

196 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 09:14:39 ]
言いますね…

197 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 10:03:26 ]
まあ、メジャーな掲示板のcgiコードもひどいもんだ。
一番良い例が、しばらく前までの2ch。

今動いているのはプロが書いたはずだから、ちゃんとしているはずだけど、
公開されてんのかね。

198 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 10:13:12 ]
フリーGGIはオススメできない
書き方が古いから。

199 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 10:41:17 ]
>>191
自分がやって「楽しい」と思うものでなければ、長続きしない。
例えば、任意の文字列を入力すると、
                         ▄         ▄▄▄▄▄▄▄▄
  ▄▄▄▄▄▄▄      ▄▀      ▄▄█▄▄  ▄▄   █▄▄▄▀  █
              ▄▀        ▄▀    ▄ ▀  █▄▄█▄▄ █
             ▄█▄▄       █     █    █▄▄█▄█ █
 █          ▄▀   █   █ █  ▄▀▀▀█▄   █  █ ▄ █ ▄
 ▀▄▄▄▄▄▄▄▄ ▄▀    ▀▄▄▀     ▀▄▄▄▀ ▀ █ ▀▀▀▀ ▀ ▀█
に変換するスクリプトを作ってスレを荒らすというのはどうだ?




200 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 11:22:02 ]
>>199
それくれw

201 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 12:34:25 ]
>>197-198
同じ事をするにも何通りも書き方がある,

というのとは違うのかい?正直わからん。

202 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 12:37:30 ]
>>197
2chのbbs.cgiは8年ぐらい前に流出した以外に表に出てないと思うのだが。

203 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 16:25:48 ]
>>201
perlのCGIがブームだった頃に作られた遺産がたくさん残ってる。
それらは大抵perl4時代のコードのままメンテナンスされてない。

204 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 17:32:22 ]
元々の>189からの話の流れからすると、特定のものを批判するより
これ読めってのを挙げた方がいいと思うが、定番といえそうなものがないな。

205 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 17:34:57 ]
普通に推奨本のコードを真似れば良いよ。

206 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 18:19:24 ]
ラマですね、わかります。

207 名前: ◆TWARamEjuA mailto:sage [2008/05/22(木) 20:21:28 BE:1961429-2BP(7088)]
おいちゃん=プロですね。わかるます。

208 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 20:32:50 ]
やっぱある程度面白くないとね。
mailあたりをいじってみたらどうかな

209 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 20:44:22 ]
>>189
2-gramの全文検索エンジンの試作オススメ。
リスト処理や文字列処理などまんべんなく入ってる。



210 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 20:59:36 ]
モチベーション最強は、やっぱエロだろ。

211 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 21:12:29 ]
・出版ブームが終了してまともな本が出てない
・Apache + mod_perlでも面倒なのにモジュールとか考えたくない
・webで探すとまともにメンテされてない糞ページがヒットしまくる
・Perl自体の記法が自由すぎるせいでそのページのコードが古いのかこっちの設定ミスなのでエラー出してるのか区別ができない

参入障壁高すぎ


212 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 21:37:14 ]
>・出版ブームが終了してまともな本が出てない
>>2以外の本はビブリオマニアでなければ必要ないよ。

>・Apache + mod_perlでも面倒なのにモジュールとか考えたくない
文の前後が繋がってないよ。

>・webで探すとまともにメンテされてない糞ページがヒットしまくる
Perlの疑問はググる前にperldocだよ。

>・Perl自体の記法が自由すぎるせいでそのページのコードが古いのか
>こっちの設定ミスなのでエラー出してるのか区別ができない
最新のperl(1)でもPerl4時代のコードが問題なく動くよ。
混ぜておかしくなるのは「新旧」でなく「お作法」だよ。

213 名前:デフォルトの名無しさん [2008/05/22(木) 23:42:33 ]
Perlでクロスワードパズルつくってみたいんだ
まずは その準備として単語(表記はカタカナで)とその対応説明が
登録されているデータベース(Excelでもテキストでもなんでもいい)
が必要です。どなたか知ってたら教えてください。それではおやすみ。


214 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 23:46:34 ]
>>213
っ[Wikipedia]

215 名前:デフォルトの名無しさん [2008/05/23(金) 00:01:31 ]
クロスワードパズルは数理パズルじゃなくて、おちゃらけクイズごっこだから得る物ないよ

216 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 01:46:17 ]
chasenの辞書からも取り出せるんじゃないかな。


217 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 01:51:48 ]
茶筅の辞書に言葉の意味なんて入ってないだろ

218 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 07:32:37 ]
>>213
クロスワード作るのとPerlは無関係
まず紙に書いて作ってPerlで起こす時に分からないことあったらまた質問しな


219 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 23:40:22 ]
\xe3\x80\x9cは変換できるのに、\xc2\xa2は変換できん。何故?
$PTNの内容をs///にべた書きすると変換できるようになる。何故?tr///が高速ならこんなことせんでもええのに。何故?
(ver. 5.8.5)


use encoding "utf8";use Encode;
binmode STDIN, ":utf8";
binmode STDOUT, ":utf8";

$PTN="(\xe3\x80\x9c|\xc2\xa2)";
%HASH=("\xe3\x80\x9c"=>"\xef\xbd\x9e","\xc2\xa2"=>"\xef\xbf\xa0");

while(<STDIN>)
{
s/$PTN/$HASH{$1}/geo;
print;
}




220 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 02:10:23 ]
w8ac6nxs.hp.infoseek.co.jp/cgi-bin/soldout/index.cgi

perlで書かれたCGIゲームです。
パーラーのみなさん、ユーザーとして
どうぞ登録してください。

まだプレイヤー4人くらいしかいません。

ユーザーの50%をパーラーにしたいという
計画です。

221 名前:デフォルトの名無しさん [2008/05/24(土) 03:24:15 ]
>>219
$PTN="(\x{301C}|\x{00A2})";


222 名前:デフォルトの名無しさん [2008/05/24(土) 03:26:18 ]
>>219
pc11.2ch.net/test/read.cgi/tech/1177930957/

223 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 11:07:24 ]
>>221
ダメでした。
\x{00a2}が\xc2\xa2じゃないものになってしまいます……。

224 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 11:51:07 ]
>>前スレ928の方
utf8を扱う tr/// で再帰時に落ちる件、ActivePerl 5.10.0.1003 では正常になっていました。
詳細は未確認だけど、33747 のmg.cへの修正が効いている感じ。


225 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 13:24:03 ]
>>215

英会話の勉強とか。。。perlのコマンド、モジュール名だけでできたクロスワードだったら
といてみたいかも。

226 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 13:25:32 ]
>>225
「Head First Java 第2版―頭とからだで覚えるJavaの基本 (単行本) 」
ではJavaに関連した単語でクロスワードパズルがあった。

227 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 17:26:41 ]
>>219
ソースコード中に「use utf8」の宣言が無いから、全ての文字列は、
UT8フラグの無い、シングルバイトの文字から構成されていることになる。
ネット上の情報からすると、Perl では、UTF8 フラグ
なし文字列を Latin-1 文字列とみなしている(らしい)。次に、
binmode STDOUT, ":utf8";
の宣言があるから、print 文等において文字列が出力される際には、
シングルバイトのLatin-1 文字列が、utf8に変換される。その結果、
このような現象が起きる.....ということでいいのかな?

間違っていたら、エロイ人、修正して下さい。


228 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 19:50:41 ]
だから猿用のテンプレを何で貼らんのよ?

229 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 19:58:46 ]
>>227
>>3
#!/usr/bin/perl -w
require 5.008001;
use encoding 'utf8';
print utf8::is_utf8('binary?') ? 'with utf8 flag' : 'binary';
__END__

>>228
utf8 プラグマも encoding プラグマも使わないに越した事ないし。
フラグの有無で悩むより、マルチバイト文字処理が本当に
必要な箇所でだけフラグ付け外しする方がよっぽど楽。



230 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 20:02:05 ]
つーかおまえら。
shは使わない方がいい、Perl使うべきだ。
とかいって、perlで

$test = `cat /home/test/test.txt`

とか多様してるやつってなんなの?

231 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 20:02:50 ]
Missing ;

232 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 20:22:26 ]
使うななどとどこのどいつが言ってるんだ?

ものぐさ番長=パーラーだ。

233 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 20:34:51 ]
猿用のテンプレってこれだっけ?
次スレからは入れような。

---------------------------------------------------------
#  【Perl 日本語処理の基礎の基礎】
# このレスは、Windows の ActivePerl で日本語処理を行う場合のテンプレートです。
# このレスの内容をそのまま、UTF8 形式のソースファイルに保存して下さい。
# 入出力ともシフトJIS形式のファイルまたはDOS窓を想定しています。
# まず、以下の行を先頭に入れて下さい。
use utf8;
use open IO => ":encoding(cp932)";
binmode STDIN => ":encoding(cp932)";
binmode STDOUT => ":encoding(cp932)";
binmode STDERR => ":encoding(cp932)";
# 次に、あなたが実行したい処理の内容を入れて下さい。
print "SJISには、「十表貼申予暴」のようなダメ文字がある。\n";
sleep(1);
# 以上の内容は、日本語処理が解らない人でも、とりあえず日本語処理ができてしまう
# おまじないです。条件が異なる場合の対処方法は、ご自分で勉強して下さい。



234 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 02:05:50 ]
>>230

if( `[ -f /home/test/test.txt ]` ) {
 $test = `cat /home/test/test.txt`;


235 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 21:58:51 ]
>>219です。
結局、\xc2\xa2の置換は諦め、別ツールで提供することになりました。
別のバージョンとか調べている時間がない……。

236 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 22:16:31 ]
>>234
if( -f /home/test/test.txt ] )
{
$test = `cat /home/test/test.txt`;
}

237 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 22:17:11 ]
>>234
if( -f /home/test/test.txt)
{
   $test = `cat /home/test/test.txt`;
}

238 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 22:57:43 ]
普通

my $test = `cat /home/test/test.txt` if(-f /home/test/test.txt);

だろ

239 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 01:22:49 ]
>>238
>>230




240 名前:デフォルトの名無しさん [2008/05/27(火) 22:41:24 ]
C言語のプラグラミングできたお。

void main(int argc, char**argv)
{
 system("cat /home/test/test.txt");
}

241 名前:デフォルトの名無しさん [2008/05/27(火) 22:48:04 ]
www.amazon.co.jp/dp/4871483517

これが書かれた頃は perl など無かったが
まさに、system() 関数使いまくろう!的な内容。

242 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 00:33:29 ]
cでやるとすごく損した気になるんだよなあ


243 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 18:50:42 ]
perlでやっても損でしょ。
perlでできる処理はperlでできるだけやるべき。

catとか。

244 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 19:08:58 ]
>>243
確かにそうなんだけど、catについてはそうかな〜。

perl だったら、open,while,colose (またはread)とかで三段処理踏まないといけないから、
cat なんかは $test = `cat file.txt` なんかはよく使う。
実際どっちが早いとかBenchとったことはないけど・・・。

245 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 19:09:46 ]
失敬、close間違い

246 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 19:12:39 ]
かなり遅いよ、perlで外部コマンド実行したら。

相当な差がある。
コード的には段階踏んでるが。

247 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 19:20:10 ]
一つ関数を書くか、CPANから探してきて使うだけでしょ

248 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 19:36:06 ]
qxはforkしてshell起動して実行して・・・って感じなので
perlだけで終わらせたほうが圧倒的に早い

File::Slurp使うか、入れるのめんどくさかったら
sub slurp {open my $fh , $_[0] || die("$_[0]:$!");local $/;<$fh>}
って書いとけばOK


249 名前:244 mailto:sage [2008/05/28(水) 20:06:16 ]
いやいや、そりゃあ自分も本格的な(?)スクリプト書く時や、
複数のファイルにループ処理する時はサブルーチンで書いたりするよ。

そうでなくて、ちょっとした確認とかで数行のスクリプトとか、
コマンドラインからのワンライナーみたいな感じで書く時には便利かな ってゆうぐらい。

そんな時にまで、いちいち、useやrequireやsub{}なんて書きたくないじゃん。



250 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 20:21:38 ]
>>244
数行だとか、処理速度とか処理効率を考えなくていいなら便利。
あくまでコマンドレベルの用途ね。

ただ不明なのが、
>サブルーチンで書いたりする
ってとこ。

関係が不明なんだけど。

251 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 20:50:01 ]
むっか〜しは、sortは外部コマンドでやってたりしたもんだ。

環境やバージョンが変わったら、こまめにベンチマーク取って
最適の方法を探らないとね。

252 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 21:09:03 ]
「cat を使う」
…ねえ。知ってると思うけど
$ cat > foo.pl
#!/usr/bin/env perl -n
print ;
}
{
print "foo\n" ;
# control + D をタイプ
$ perl foo.pl foo.pl foo.pl
$ perl -lne '}{ print $. ;' foo.pl



253 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 21:25:17 ]
そいつは初耳だ
解説よろしく

254 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 21:46:36 ]
>>253
optionに関しては perl -h するなりで
-n assume "while (<>) { ... }" loop around program
-p assume loop like -n but print line also, like sed
で実際の挙動を見るには
perl -MO=Deparse -ne 'print;'
この結果を見ると while ループで単純にかこってあるだけだから
ループの終りの「}」と無名ブロックの始まりの「{」を入れて
好きな様に処理させる。
応用すれば、「tsvの第二カラムの積算」なんてのは
perl -lane '$t += $F[1] ; }{ print $t ;' FILE

スクリプトファイルにしたときも同じ事。B::Deparse にて確認して。
perl -MO=Deparse foo.pl
あとはお好みに。これで手に負えない時とかstrict適用したい時は
普通に書きゃいいだけだし。


255 名前:244 mailto:sage [2008/05/28(水) 22:41:30 ]
>>250
それは、>>247>>248に対するレスで、例えばopen();while(){うんたらかんたら・・・}close();を
一まとめにしたサブルーチンなんかに投げるってこと。

いや、スマン。244で速度のこととか言い出したんだけど、
自分が言いたかったことは、>>240-243までの流れで、ちょっとした処理(>>240とかw)を
わざわざCで書いたんなら、かなり損した気分になるのは大いに理解できるけど、
それをperlでやるのは、そんなに損した気にはならない、
ってゆうか、perlだからこそ、$nakami = `cat file.txt`;や@files = `find ・・・`;
みたいな事が手軽に出来る、ってのが、perlの大きな魅力の1つではないかと自分は思ってる。
ってことを言いたかった。

>>252
それはオレも初耳。
完全に理解しきれてないけど、色々応用が効きそうだ。

256 名前:デフォルトの名無しさん [2008/05/28(水) 23:31:00 ]
>>246
>>248
「かなり」 とか 「圧倒的に」 とか、ずいぶんアバウトだな。
そんなんじゃ全然説得力が無い。

たとえば、$a = `cat unko.txt` すると 0.1秒かかるとしよう。
open・read・close すると0.01秒しかかからないとしよう。
で?それが何なの?どうなのよ、って事だ。
えっ?10倍早いだって?
おいおい、0.1−0.01=0.09秒しか違わないんだよ。
たったの0.09秒の差を人間が感じ取れるとでも思うの?
アフォくさ。

257 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 23:34:30 ]
>>256
whileかけるようになったらまたおいで。

258 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 00:09:41 ]
>>256
一回だけ処理するならその程度で済むかもね。

259 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 00:29:53 ]
svn より、cvs のほうがインストールの敷居は低いんじゃないかなぁ。
cvs のほうが依存するライブラリ少いし、FreeBSD なら最初から入ってるし。



260 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 00:42:12 ]
俺はsubversion派だわ

って誤爆か

261 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 13:56:47 ]
誤爆じゃないだろ。perldoc.jpの話じゃね?

262 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 15:29:41 ]
my $message = "He is 5 years old\n";
$message =~ s/(\d+)/{ twice($1) }/e; #数字を検索して、2倍して置換
print $message;

これなのだけど
my $message = "He is 5 years old\n";
$message =~ s/(\d*)/{ twice($1) }/e; #数字を検索して、2倍して置換
print $message;

これじゃダメなのはなんで?

263 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 15:35:34 ]
* は0回以上の繰り返しだから、先頭でマッチする。

264 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 18:45:13 ]
(\d*)

全てが任意なので、全ての行で置換が行われることに

265 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 18:47:59 ]
先頭つーか、全ての文字の間にマッチする。

266 名前:265 mailto:sage [2008/05/29(木) 18:48:46 ]
\d\d*

でやってみ。

267 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 19:34:03 ]
>>265
egじゃなくてeだから、この場合は先頭だけだろう。

268 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 21:48:26 ]
お、eをgと見間違えたわ。

269 名前:デフォルトの名無しさん [2008/05/29(木) 21:59:34 ]
いーじーさんにつーれられーてー・・・
いや何でもない



270 名前:デフォルトの名無しさん [2008/05/29(木) 22:23:27 ]
逝っちゃった

271 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 23:56:31 ]
横浜港 乙

272 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 03:29:45 ]
港のヨ〜(ry

273 名前:デフォルトの名無しさん [2008/05/31(土) 19:56:52 ]
cpan起動出来なくなりました。

#cpan
Unable to get Terminal Size. The TIOCGWINSZ ioctl didn't work.
The COLUMNS and LINES environment variables didn't work. The resize program didn't work.
at /usr/local/lib/perl5/site_perl/5.8.3/i386-freebsd/Term/ReadKey.pm line 362.
Compilation failed in require at /usr/local/lib/perl5/site_perl/5.8.3/Term/ReadLine/Perl.pm line 63.

とエラーが出ます。
恐らく、perlのバージョンアップした際に不具合が生じているのかと思うのですが・・・。
ネットで解決法を探すも情報がほとんどなく手がかりもつかめません。

perl v5.8.3
OS FreeBSD 4.2-R

助けて下さい。お願いします。

274 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 20:09:04 ]
もっかいCPANインスコしなおせばいいじゃん

275 名前:273 [2008/05/31(土) 21:57:38 ]

インストールしなおしてみましたが、ダメでした。
同じ症状です・・・。トホホ。

276 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 21:58:41 ]
12 May 2008 20:15:40

2008/05/12 20:15:40
という風に返すモジュールないですか?



277 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 22:02:33 ]
>>273
どこでおかしくなっているか明示されているんだから、
見てみればいいだけ。

278 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 22:19:44 ]
>>276
use HTTP::Date qw(str2time time2iso)
print time2iso( str2time("12 May 2008 20:15:40") );

279 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 22:22:11 ]
ああスラッシュ(/)か >>278 なし



280 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 22:27:06 ]
>>276
Date::Manipかな。日付を扱うならDate::Calcとともに定番。

perl -MDate::Manip -e 'print UnixDate("12 May 2008 20:15:40", "%Y/%m/%d %H:%M:%S")'

281 名前:276 mailto:sage [2008/06/01(日) 00:57:56 ]
>>278
>>280
280氏のDate::Manipで解決できました。ありがとうございました。


282 名前:デフォルトの名無しさん [2008/06/01(日) 04:50:03 ]
activeperl v5.10.0 built for MSWin32-x86-multi-thread
において

 GD v2.39
 GD::Graph v1.4308
 GD::Text v0.86





use GD;
use GD::Text;

use GD::Graph::bars;
my $graph = GD::Graph::bars->new( 800, 800 );
my $gd_text = GD::Text->new();
GD::Text->font_path( _______DIR______);
$gd_text->set_font(_______FONT______, 178) ;#or die $gd_text->error;
$graph->set_title_font(_______FONT______, 178 );


_______DIR______ = undef | '' | 何か意味のある値
_______FONT______ = undef | '' | 何か意味のある値

をWindowsXP SP2あるいはWindows2k SP1で実行したとき
どうもシステムのフォントを破壊?するようです


283 名前:232 [2008/06/01(日) 04:57:25 ]
以下windows板に書いた物。

windows XP

起動してみると ”ようこそ”が明朝体になってて
ファイル名の全角空白までも文字化けしている状態になりました。

標準で恐らく第1水準漢字が表示できたりできなかったりするフォントが選択されているようです。
検索 -> 索 が表示できない
削除 -> 削 が表示できない
書き込む −> 込 が表示できない

またcmdで日本語が返ってくるような状態
>> c:\hoge\foo.bar (実際には存在しないファイル)
とかタイプすると ■■■■■ ■■■■と文字化けして
(ファイルが見つかりませんとかそんな感じのメッセージ)と返ってきます。

support.microsoft.com/kb/880991/ja
に従ってフォントキャッシュを消して再起動しても改善されませんでした。


Windows 2000 SP1では IE6の検索ウインドウに英字を入れるとイタリックに化ける
という共通してんだか共通してないんだかな現象が発生します。


232に書いたコードを実行したときに即に破壊するわけではなく、次回起動時から影響が出始めるので
何がどうなってるのかまったく分からない上に妙な分野にまたがった問題のために、
5時間戦って何にも戦果が上がらずもう疲れたのでとりあえずよし牛でも行ってからOS入れなおすことにしますた。

GD(GD::Textだと思うんだけど)使うときは気をつけてください。

284 名前:282 mailto:sasge [2008/06/01(日) 05:17:28 ]
すみません、 訂正 283 で s/232/282/g; で読んでください。
再現したくないのでぜんぜん検証ができないのですが
これはCPANの作者さんにも報告したほうがいいのでしょうか?

285 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 17:00:58 ]
ヤフオクの管理をしようと思います

とりあえず出品リストを作ろうと思って、
openuser.auctions.yahoo.co.jp/jp/user/my46giga
の内容の取得をしようと思っても、アダルト商品なので表示されません
クッキー周りだと思うのですが、うまくいきません
書いてみたのは下のようなもので、
yahoo_cookieにはadministrator@auctions.yahoo.co[2].txtの内容を
#LWP-Cookies-1.0
Set-Cookie3: YAUC_AV=.....
みたいな感じでコピーしてあります
どこが間違っているのでしょう

use LWP::UserAgent;
use HTTP::Request::Common;
use HTTP::Cookies;
use Encode;
$cookie_file = 'yahoo_cookie';
my $cookie_jar = HTTP::Cookies->new(file => $cookie_file, autosave => 1);
$ua = LWP::UserAgent->new;
$ua->cookie_jar($cookie_jar);
$req = GET "openuser.auctions.yahoo.co.jp/jp/user/my46giga";
$res = $ua->request($req);
print $res->content;

286 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 17:12:13 ]
どういう風にできないの?

287 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 23:15:25 ]
要素に配列への参照か文字列を含んだ再帰的な配列を出力するプログラムを作ろうとしているのですが
ややこしくてついアイスに手を出してしまいます。
どうすれば幸せになれますか

my @a=(1,2,3);
my @b=qw(a b c);
my $c=[\@a,\@b];
my $aa=[1,2,3];
my $bb=[4,5,6];
my $cc=[\$aa,\$bb];
sub pr{
    my($depth,$ary_ref)=@_;
    if((ref $ary_ref) eq "ARRAY"){
        foreach (@$ary_ref){
            pr(($depth+1),$_)
        }
    }elsif(defined $$ary_ref){
        print $depth,":",$$ary_ref,"do something\n";
    }else{
        print "do nothing\n";
    }
}
pr $cc;
pr $c;


288 名前:287 mailto:sage [2008/06/02(月) 08:56:48 ]
自己解凍しました。

289 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 11:07:13 ]
書きたかっただけだろw



290 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 12:34:14 ]
sendmailで受信したメールを、procmailからperlスクリプトを起動して処理しているのですが処理結果ない場合があります。
どこかでエラーが出て止まっていると思うのですが、エラー内容をファイルに出力できないでしょうか?
.procmailrcを

:0
|perl ./foo.pl 2>&1 > ~/out.txt

としてみましたがout.txtにはなにも出力されませんでした。(空ファイル)

291 名前:デフォルトの名無しさん [2008/06/02(月) 12:44:59 ]
Windows だとその書き方はダメで
perl ./foo.pl > ~/out.txt 2>&1
というふうに 2>&1 を後ろにもっていく必要がある。
Unix 系はどうか知らん。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<139KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef