5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

1 :デフォルトの名無しさん:2010/07/31(土) 10:53:20
CGI についての質問は板違いです。WEB プログラミング板でどうぞ。
CGI と Perl の区別がつかない人も WEB プログラミング板に行ってください。
(WEB プログラミング板: http://pc11.2ch.net/php/)

このスレでは(CGI 以外の)純粋にPerlのみに関係する質問を取り扱っていこうと思います。
スレ違いの質問にはスルーか、速やかな誘導をお願いします。

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

http://www.perl.org/get.html
● 2010/07/31 現在の最新版: 5.12.0

▼ 前スレ
Perlについての質問箱 43箱目
http://pc12.2ch.net/test/read.cgi/tech/1266565626/
リンク集は >>2-3
Perl 日本語処理の基礎の基礎 >>4
過去スレは >>5-7 あたり

2 :デフォルトの名無しさん:2010/07/31(土) 10:54:14
[プログラミング自体の経験が無い奴はまずココを読め]
Perl プログラミング講座: ttp://www.site-cooler.com/kwl/perl/

[本]
リャマ: ttp://www.oreilly.co.jp/books/9784873114279/
駱駝: ttp://www.oreilly.co.jp/books/4873110963/
Effective Perl: ttp://www.ascii.co.jp/books/books/detail/4-7561-3057-7.shtml (修正)
クックブック: ttp://www.oreilly.co.jp/books/4873112028/
Perl ベストプラクティス: ttp://www.oreilly.co.jp/books/4873113008/
Perl Hacks: ttp://www.oreilly.co.jp/books/9784873113142/

[オンラインマニュアル]
最新のドキュメント: ttp://search.cpan.org/dist/perl/
perl5.8.x のドキュメント(一部): ttp://www.kt.rim.or.jp/~kbk/perl-5.8/
perl5.005_03 のドキュメント: ttp://www.kt.rim.or.jp/~kbk/perl5.005/
日本語ドキュメント検索: ttp://www.cpan.jp/search.cgi (停止中)
perldoc.jp: ttp://www.perldoc.jp/
perldoc.com: ttp://www.perldoc.com/

3 :デフォルトの名無しさん:2010/07/31(土) 10:55:55
[モジュール]
CPAN.com: ttp://search.cpan.org/
河馬屋二千年堂: ttp://homepage3.nifty.com/hippo2000/

[テクニック]
Perl メモ: ttp://www.din.or.jp/~ohzaki/perl.htm
Perl のページ: ttp://homepage1.nifty.com/nomenclator/perl/
Perl の小技: ttp://homepage3.nifty.com/hippo2000/perltips/index.htm

[Perl 5.8 Unicodeメモ]
ttp://www.rwds.net/kuroita/program/Perl_unicode.html (修正)
ttp://www.namazu.org/~tsuchiya/perl/perl-5.8.html
ttp://www.lr.pi.titech.ac.jp/~abekawa/perl/perl_unicode.html

4 :デフォルトの名無しさん:2010/07/31(土) 10:56:59
# [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)"; # ※1
use Encode;
# 次に、あなたが実行したい処理の内容を入れて下さい。
$file = 'C:/なんたら/かんたら.txt';
open my $fh, '<', encode("cp932", $file) or die $! ; # ※2
print <$fh>;
# 以上の内容は、日本語処理が解らない人でも、とりあえず日本語処理ができてしまう
# おまじないです。条件が異なる場合の対処方法は、ご自分で勉強して下さい。
# 【注】※1. の行を入れると、DOS 窓への日本語出力は簡便になりますが、
# ソースファイル名に非 ANSI 文字が含まれる場合に die 文の出力が失敗します。
# ※2. OS に渡す文字列(ファイル名,dos コマンドのオプションなど)は、
# この例のように cp932 でエンコードする必要があります。

5 :デフォルトの名無しさん:2010/07/31(土) 10:58:19
[過去スレ1]
1 http://pc.2ch.net/tech/kako/1017/10177/1017736187.html
2 http://pc3.2ch.net/tech/kako/1033/10336/1033688230.html
3 http://pc2.2ch.net/tech/kako/1041/10412/1041205885.html
4 http://pc2.2ch.net/tech/kako/1048/10485/1048519394.html
5 http://pc5.2ch.net/tech/kako/1053/10530/1053053082.html
6 http://pc5.2ch.net/tech/kako/1060/10606/1060689008.html
7 http://pc2.2ch.net/test/read.cgi/tech/1068051036/ (事故により消滅)
8 http://pc2.2ch.net/test/read.cgi/tech/1074151549/ (事故により消滅)
9 http://pc5.2ch.net/test/read.cgi/tech/1079114157/
10 http://pc5.2ch.net/test/read.cgi/tech/1085564875/
11 http://pc5.2ch.net/test/read.cgi/tech/1090889189/
12 http://pc5.2ch.net/test/read.cgi/tech/1094579428/
13 http://pc5.2ch.net/test/read.cgi/tech/1097851764/
14 http://pc5.2ch.net/test/read.cgi/tech/1101649274/
15 http://pc5.2ch.net/test/read.cgi/tech/1105953092/
16 http://pc8.2ch.net/test/read.cgi/tech/1111034732/
17 http://pc8.2ch.net/test/read.cgi/tech/1117870308/
18 http://pc8.2ch.net/test/read.cgi/tech/1121804136/
19 http://pc8.2ch.net/test/read.cgi/tech/1126977805/
20 http://pc8.2ch.net/test/read.cgi/tech/1131286411/

6 :デフォルトの名無しさん:2010/07/31(土) 11:16:13
[過去スレ2]
21 http://pc8.2ch.net/test/read.cgi/tech/1134327348/
22 http://pc8.2ch.net/test/read.cgi/tech/1138519327/
23 http://pc8.2ch.net/test/read.cgi/tech/1141742901/
24 http://pc8.2ch.net/test/read.cgi/tech/1146022352/
25 http://pc8.2ch.net/test/read.cgi/tech/1149259409/
26 http://pc8.2ch.net/test/read.cgi/tech/1153412251/
27 http://pc8.2ch.net/test/read.cgi/tech/1157874614/
28 http://pc8.2ch.net/test/read.cgi/tech/1162273941/
29 http://pc11.2ch.net/test/read.cgi/tech/1166708139/
30 http://pc11.2ch.net/test/read.cgi/tech/1173880452/
31 http://pc11.2ch.net/test/read.cgi/tech/1181500187/
32 http://pc11.2ch.net/test/read.cgi/tech/1186995713/
33 http://pc11.2ch.net/test/read.cgi/tech/1192463997/
34 http://pc11.2ch.net/test/read.cgi/tech/1199977642/
35 http://pc11.2ch.net/test/read.cgi/tech/1208674881/
36 http://pc11.2ch.net/test/read.cgi/tech/1215569470/
37 http://pc11.2ch.net/test/read.cgi/tech/1218449440/
38 http://pc11.2ch.net/test/read.cgi/tech/1221967332/
39 http://pc12.2ch.net/test/read.cgi/tech/1234181856/
40 http://pc12.2ch.net/test/read.cgi/tech/1243631674/

7 :デフォルトの名無しさん:2010/07/31(土) 12:48:42
[過去スレ3]
41 http://pc12.2ch.net/test/read.cgi/tech/1249581780/
42 http://pc12.2ch.net/test/read.cgi/tech/1257139591/
43 http://pc12.2ch.net/test/read.cgi/tech/1266565626/

8 :デフォルトの名無しさん:2010/07/31(土) 13:35:52


9 :デフォルトの名無しさん:2010/07/31(土) 18:28:59
ところで整数の算数を文字列でやってるんだけど
250桁同士の掛け算に15分かかる。
効率いい方法ってある?


10 :デフォルトの名無しさん:2010/07/31(土) 19:13:40
use Math::BigInt lib => 'GMP';

11 :デフォルトの名無しさん:2010/07/31(土) 19:53:59
今まで時間かかってた600桁同士の掛け算が0.1秒くらいで終わったよ……
どうもです


12 :デフォルトの名無しさん:2010/07/31(土) 20:21:18
UNIXの勉強中。
基礎を学んでUNIXC少しやってVBちょっとやったらCGIに入る予定だ。
目標KENT WEB!
多少なりとも足固めしてしてからサイトから落として徐々に作り変えて自分のサイトにしていく。
どうせ誰も見てないサイトだ。何やってるかなんてわかりゃしない。
がんばろ!

13 :デフォルトの名無しさん:2010/07/31(土) 23:34:40
釣り針でかすぎだろw

14 :PHPヲタ:2010/07/31(土) 23:36:57
>>12
こういう初心者最高すぎるよ!

15 :PHPヲタ:2010/07/31(土) 23:40:17
>>12
友達になろう

16 :PHPヲタ:2010/08/01(日) 00:09:38
>>12
君は最高だ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!っ

17 :デフォルトの名無しさん:2010/08/01(日) 00:34:59
なんか基地外がいついたな

18 :デフォルトの名無しさん:2010/08/01(日) 01:13:05
CGI覚えてちゃんとできるようになったら仕事もらって在宅ビジネスにするんだ。
KENTのように10年くらいで覚えて独立も視野にいれて頑張る。
儲かるぞーーーー、夢の上では^^;
貸借対象表と損益計算書でROA計算してROEもだしてヂュポンシステムで財務レバレッジの適正値も出すんだ。
KENTに仕事回してもらえるくらいにならんといかんな。
無いな^^;
だが、ROAはだせるはずだ。がんばろ。

19 :デフォルトの名無しさん:2010/08/01(日) 01:37:14
1のテンプレの順番変えたんだけど逆効果だったか

20 :デフォルトの名無しさん:2010/08/01(日) 02:34:46
すれたておつ
逆効果ってこたないだろうけど効果もないような気はする

21 :デフォルトの名無しさん:2010/08/01(日) 08:11:03
>>18
僕にはコミュニケーション能力と英語力があるので雇ってください
私はプログラミングにはTOEICが必要だと思っています
私はTOEICで900点以上目指して日々がんばっています
楽天が英語を使っているので 「今の企業は全て英語じゃないと行けない」と思いました
プログラミングなんて今時時代遅れなのです!今はコミュニケーション能力とクラウドの時代です
これからKENTWEBを使ったクラウドが沢山展開されると思っています!
KENTを利用することで大規模なクラウドが作り上げられます!
KENTを使ったホスティングサービスはクラウドというんです 私は5年前から目をつけてました
そもそもPerlなんて時代おくれです!!ですがCGI言語を使うために私はperlを使います
CGI=Perlなので CGI言語を取得すれば大丈夫です  私はIISをつかってますIISを使って高機能なサーバを提供できます
OSは一番最新なものがいいのです 私はWindows7をつかっています
CGI言語はActivePerlでかいているので・・・ あとCGI言語をみてると my our localなどuse xxx;
などと意味不明な文字が見つかります・・・なんなんでしょうねあれは  かっこつけてるんでしょうか
私にはコミュニケーション能力と英語力と経営学、マネージメント力があるので
プログラミングより人をプログラミングするのです 今時TOEICをもってないプログラマはプログラマではありません
TOEICもってない英語のできない人はプログラミングがへたでしょう
あと毎日新聞読んでます あとは株などFXやって世界の事に関心をもってます
プログラミング歴はVB1年です 現在は自宅療養で職探しです

22 :デフォルトの名無しさん:2010/08/01(日) 14:50:54
BigInt使わないときのアルゴリズムってどんなの?


23 :21:2010/08/01(日) 14:54:54
>>22
聞いてますか?

24 :デフォルトの名無しさん:2010/08/01(日) 16:33:24
テンプレ見ない奴はどうしたってみないもの

25 :21:2010/08/01(日) 16:51:09
やはりPerlはテキスト処理とか得意ですよね
いまActivePerlをインストールしたんですが

最初は何入れた方が良いですか?
エディタは禿丸使ってます

26 :名無し:2010/08/01(日) 17:40:13
HTML::TagParserやったら
utf8のファイルをinnerTextで表示してるのに文字化けしてるなんでですか教えてください!

use strict;
use Encode::Guess;
use HTML::TagParser;
use Encode qw/from_to/;
my $html=HTML::TagParser->new("chat2.html");
my $elem=$html->getElementsByTagName("font");
my $data=$elem->innerText();
my $enc=guess_encoding($data);
print $enc->name."\n";
print $data;

ファイルの文字コードutf8ですし 読み込んだ文字も判別した結果もutf8なのに
なんで文字化けするんですか!!!教えてください!!端末の設定はutf8です!

utf8
���������(6)鐚�T
ってでます



27 :デフォルトの名無しさん:2010/08/01(日) 17:48:23
推測に失敗してんじゃないの?
文字化けしないって思う方が理解できん

28 :名無し:2010/08/01(日) 17:49:32
>>27
早く解決方法教えろやこら?!
なあ?推測とか単語並べてんじゃねえ世早く教えロやこら!!
クソがよwwwwwなあ?wwww教えろよ派やくwwwwなあ?wwww早く教えてください

29 :デフォルトの名無しさん:2010/08/01(日) 17:50:46
と・・判別には成功してるのか。
とりあえず出力を16進数ダンプするとかfr、何が出力されてるか確認してみては


30 :名無し:2010/08/01(日) 17:56:25
0000000: e88e 87ef bfbd efbf bdef bfbd efbf ........
0000010: b6bd efbf bdef bfbd efbf bdef bfbd efbf ................
0000020: bdef bfbd efbf bdef bfbd efbf bdef bd83 ................
0000030: efbf bdef bfbd efbf bdef bfbd efbf bd0a ................

・・・・・・・

31 :名無し:2010/08/01(日) 18:05:18
文字化けしてるワードは「超初心者チャット」です

教えてくださいお願いします

32 :名無し:2010/08/01(日) 18:09:09
間違えました
文字化けしてるワードは他のやつです教えてください

33 :デフォルトの名無しさん:2010/08/01(日) 18:29:27
さっきふと思ったけど、端末への出力の時点で
化けてる可能性はないんだろうか。
あとテスト書いた方が問題切り分けやすいよ

34 :デフォルトの名無しさん:2010/08/01(日) 18:31:29
>>32
たぶんchat2.htmlのcharset指定が間違ってるためだと思う

<html>
<meta http-equiv="content-type" content="text/html; charset=EUC-JP">
<font>超初心者チャット</font>
</html>

$ ./hoga.pl |od -x
0000000 7475 3866 e80a 878e bfef efbd bdbf bfef
0000020 efbd bdbf b6e7 efbd bdbf bfef efbd bdbf
0000040 bfef efbd bdbf bfef efbd bdbf bfef efbd
0000060 bdbf bdef ef83 bdbf bfef efbd bdbf bfef
0000100 efbd bdbf







35 :デフォルトの名無しさん:2010/08/01(日) 18:33:42
WindowsならSJISだから、utf8で出力すると化ける
>>26はOS何?


36 :名無し:2010/08/01(日) 18:35:32
>>34
できました!!ありがとうございます!!
HTML::TagParser で取り出した文字コードは UTF-8 となります。
META タグで文字コード(エンコーディング)が指定されている場合、自動的に文字コードを UTF-8 変換します。

<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">

って書いてあったんで UTF-8に変換してくれるとおもったら
EUCのままでしたそうじゃないんですね ありがとうございました
本当にありがとうございます

37 :名無し:2010/08/01(日) 18:36:41
>>35
MacOSXです^^
自分に非はありませんでした^^

38 :デフォルトの名無しさん:2010/08/01(日) 18:51:55
>>37
非ありまくりだろ

39 :デフォルトの名無しさん:2010/08/01(日) 19:43:11
>>38 これにさわるなよ↓
^^;

40 :デフォルトの名無しさん:2010/08/01(日) 21:43:47
xslateというテンプレートエンジンが速いそうですが、mobasifと比べてどっちが速いでしょうか。
ベンチマーク探したけど、両者を比較しているのは見つかりませんでした。

というか xslate のほうは後発なんだから、高速だと主張するならTTなんかじゃなくて
mobasifと比べてほしいよね。

41 :PHPヲタ:2010/08/01(日) 22:05:14
なんで2chって名無しなの?
まじ名前ってあんだから名前つければいいのにwwwwwばかじゃねえのほんとあほくせえ

42 :デフォルトの名無しさん:2010/08/01(日) 22:29:58
sub foo($;$){
↑これの$;$はどういう意味ですか?

43 :デフォルトの名無しさん:2010/08/01(日) 22:35:13
プロトタイプ

44 :デフォルトの名無しさん:2010/08/01(日) 22:42:23
ありがとうございます。
受け取る引数の型や数を指定できるんですね。

45 :デフォルトの名無しさん:2010/08/01(日) 22:54:02
既存のパッケージのクラスにメンバ変数を追加する方法を教えてくれ
use foo::bar
{ package foo::bar;
my %hash
sub hash {return \%hash}
}
としてみたんだが、どうもこれはクラス変数になるっぽい
メンバ変数を追加する方法を教えてください

46 :PHPヲタ:2010/08/01(日) 23:32:59
>>42
しってるのに聞くてめえは老人かぼけが!!!!!!^^

47 :デフォルトの名無しさん:2010/08/02(月) 22:37:10
今ここで質問したら、自力でやったのでは無く2chの人たちに教えてもらった形になるので質問したくないです
どうすればいいですか?ここで質問したら恥ずかしいと思ってます
かといってPerlの場所できいたら 初心者だなこいつ って思われるから聞きたくないです
どうすればいいでしょうか教えてください

48 :PHPヲタ:2010/08/02(月) 22:44:45
>>47
しねよてめえはよ!!!!!!!!!!

49 :名無し:2010/08/03(火) 12:02:23
LWP::UserAgentでEUC-JPのログをUTF8にしたいんですが

$req=HTTP::Request->new(GET=>"http://xxxxxxxx.xxx/xx.html");
$res=$ua->request($req);
print "Content-Type: text/html;charset=utf-8\n\n";
print $res->content;

やっぱりこれだと 読み込んだのがEUCなので文字化けされてしまいます
charset=euc-jpに変えれば問題なく表示されるんですが
utf-8で読み込んで表示させたいです

なんかrequestで読み込むとき HTML::TagParserみたいに自動でutf8で読み込まれる方法ないんですか???
教えてください!

50 :名無し:2010/08/03(火) 12:04:23
http://xxxxxxxx.xxx/xx.htmlのcharsetがEUC-JPです utf8じゃないです
おしえてください

51 :デフォルトの名無しさん:2010/08/03(火) 12:32:53
binmode

52 :デフォルトの名無しさん:2010/08/03(火) 13:06:55
$res->decoded_content(charset => "euc-jp")

53 :デフォルトの名無しさん:2010/08/03(火) 13:10:02
↑flagged utf8になるから出力するときはencode_utf8してくれ

54 :名無し:2010/08/03(火) 13:26:34
use Encode qw(encode_utf8);
my $ua=LWP::UserAgent->new();
my $req=HTTP::Request->new(GET=>"xxxxxxx");
my $res=$ua->request($req);
print "Content-Type: text/html;charset=utf-8\n\n";
print encode_utf8($res->content);

出来ないです!!!!教えてください!!

55 :デフォルトの名無しさん:2010/08/03(火) 13:29:49
>>53>>52の補足なんだけど

56 :名無し:2010/08/03(火) 13:32:22
URL先は EUC-JPでエンコーディングされてます
charsetもEUC-JPです

57 :名無し:2010/08/03(火) 13:33:41
my $res=$ua->request($req);
$res->decoded_content(charset => "euc-jp");
print "Content-Type: text/html;charset=utf-8\n\n";
print encode_utf8($res->content);

すみません $res->decoded_content(charset => "euc-jp")
これぬけてました
これがあってもできません

58 :デフォルトの名無しさん:2010/08/03(火) 13:43:10
print encode_utf8($res->decoded_content(charset => 'euc-jp'));

59 :名無し:2010/08/03(火) 13:52:46
>>58
できました ありがとうございます
ちゃんと表示されました。

encode_utf8つかえばsocketで1行1行読みこんでもutf8にできるんですかね?
LWPで1行ずつ読み込む方法ないんですか?
requestだと一気に読み込まれてるんですが
やっぱりuse Socket;使わないと 1行単位での処理はむりでしょうか?
いちいちsocketでprnt socket "ファイルパス";みたいにするのがめんどくさいので
LWPみたいにurl指定して 1行読み込む奴無いですか?おしえてください

60 :名無し:2010/08/03(火) 16:04:42
正規表現かいてて途中でみづらくなってエンタおしちゃうと\n(改行)が入っちゃう場合どうすればいんですか
教えてください!!!!!!!!

61 :デフォルトの名無しさん:2010/08/03(火) 17:06:45
>>59
use Encode qw(from_to);
use IO::All;

my $io = io("http://example.com");
$io->autoclose(1);
while(my $line = $io->getline){
from_to($line, 'euc-jp', 'utf8');
print $line;
}

>>60
x修飾子

62 :名無し:2010/08/03(火) 17:10:09
>>61
きみすごいな〜 よかったらボクの弟子になりませんか?
天才すぎるよ〜本やサイトみるより君にきいたほうがすごいからねえ

63 :デフォルトの名無しさん:2010/08/04(水) 03:22:01
彼なりの感謝の言葉なので責めないであげてください

64 :デフォルトの名無しさん:2010/08/04(水) 17:36:22
ネット系でおすすめのモジュールありますか?
HTML::TagParser
LWP::UserAgent の他にネットで加工する時に役に立つモジュール教えてください。

65 :デフォルトの名無しさん:2010/08/04(水) 17:40:40
>>64

use URI::Amazon::APA; # 弾氏作成モジュール
use LWP::UserAgent;
use XML::Simple; # http://search.cpan.org/~grantm/XML-Simple-2.18/lib/XML/Simple.pm
use YAML::Syck;
use Encode ;


66 :デフォルトの名無しさん:2010/08/04(水) 17:43:54
>>65
ありがとうございます。

他の人々もあったら教えてください。

67 :デフォルトの名無しさん:2010/08/04(水) 19:05:50
LWPで取得したHTMLファイルのAタグのhrefを絶対パスに書き換えたいんですけど、
URIを相対パス→絶対パスに置換してくれるモジュールないですかね?

68 :PHPヲタ:2010/08/04(水) 19:17:35
>>67
てめえそんなの正規表現でやりぇお!!!!!!!!!!!
あたりまえだろ!?!!!!てめえそれでもperlやってんのか!?
モジュールとかなら質問してもいいけどなああ?そんな当たり前の素人みたいな質問してんじゃねえぞ!!!!!!!!!!!!

69 :デフォルトの名無しさん:2010/08/04(水) 19:17:38
>>67
URIでいいんじゃねーの? LWPあるんなら入ってるだろ。

70 :PHPヲタ:2010/08/04(水) 19:19:12
だぶるコンボ成功・・・・
2010/08/04(水) 19:17:35
2010/08/04(水) 19:17:38

71 :デフォルトの名無しさん:2010/08/04(水) 19:50:03
>>69
まさに求めていたものでした。thx

23 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)