Perlについての質問箱 33箱目
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2007/10/16(火) 00:59:57"There's more than one way to do it" ということで、Perlの奥深さについて皆で語り合い、追求してまいりましょう。
CGIについての質問は板違いです。WEBプログラミング板でどうぞ。
CGIとPerlの区別がつかない人もWEBプログラミング板に行ってください。
(WEBプログラミング板 http://pc11.2ch.net/php/ )
CGIの質問は答えがPerlと全然関係ない話に帰着する場合が多かったりするのでWEBプログラミング板に行って聞いたほうが得ですよ。
このスレでは(CGI以外の)純粋にPerlのみに関係する質問を取り扱っていこうと思います。
スレ違いの質問にはスルーか、速やかな誘導をお願いします。
http://www.perl.org/get.html
● 2007/10/12現在の最新版: 5.8.8
● 2007/10/12現在の開発版: 5.9.5
前スレ
Perlについての質問箱 32箱目
http://pc11.2ch.net/test/read.cgi/tech/1186995713/
リンク集は>>2-3
過去スレは>>4 あたり
0002デフォルトの名無しさん
2007/10/16(火) 01:01:34Perlプログラミング講座: http://www.site-cooler.com/kwl/perl/
[本]
リャマ: http://www.oreilly.co.jp/books/4873111269/
駱駝: http://www.oreilly.co.jp/books/4873110963/
Effective Perl: http://www.ascii.co.jp/books/detail/4-7561/4-7561-3057-7.html
クックブック: http://www.oreilly.co.jp/books/4873112028/
[オンラインマニュアル] (追加)
最新のドキュメント: http://search.cpan.org/~nwclark/perl-5.8.8/
perl5.8.xのドキュメント(一部): http://www.kt.rim.or.jp/~kbk/perl-5.8/
perl5.005_03 のドキュメント: http://www.kt.rim.or.jp/~kbk/perl5.005/
日本語ドキュメント検索: http://www.cpan.jp/search.cgi
perldoc.jp: http://www.perldoc.jp/
Perldoc.com: http://www.perldoc.com/
0003デフォルトの名無しさん
2007/10/16(火) 01:01:400004デフォルトの名無しさん
2007/10/16(火) 01:02:09CPAN.com: http://search.cpan.org/
河馬屋二千年堂: http://homepage3.nifty.com/hippo2000/
[テクニック]
Perlメモ: http://www.din.or.jp/~ohzaki/perl.htm
Perlのページ: http://homepage1.nifty.com/nomenclator/perl/
Perlの小技: http://homepage3.nifty.com/hippo2000/perltips/index.htm
[Perl5.8Unicodeメモ]
http://www.pure.ne.jp/~learner/program/Perl_unicode.html
http://www.namazu.org/~tsuchiya/perl/perl-5.8.html
http://www.lr.pi.titech.ac.jp/~abekawa/perl/perl_unicode.html
0005デフォルトの名無しさん
2007/10/16(火) 01:03:101 ttp://pc.2ch.net/tech/kako/1017/10177/1017736187.html
2 ttp://pc3.2ch.net/tech/kako/1033/10336/1033688230.html
3 ttp://pc2.2ch.net/tech/kako/1041/10412/1041205885.html
4 ttp://pc2.2ch.net/tech/kako/1048/10485/1048519394.html
5 ttp://pc5.2ch.net/tech/kako/1053/10530/1053053082.html
6 ttp://pc5.2ch.net/tech/kako/1060/10606/1060689008.html
7 ttp://pc2.2ch.net/test/read.cgi/tech/1068051036/
8 ttp://pc2.2ch.net/test/read.cgi/tech/1074151549/
9 ttp://pc5.2ch.net/test/read.cgi/tech/1079114157/
10 ttp://pc5.2ch.net/test/read.cgi/tech/1085564875/
11 ttp://pc5.2ch.net/test/read.cgi/tech/1090889189/
12 ttp://pc5.2ch.net/test/read.cgi/tech/1094579428/
13 ttp://pc5.2ch.net/test/read.cgi/tech/1097851764/
14 ttp://pc5.2ch.net/test/read.cgi/tech/1101649274/
15 ttp://pc5.2ch.net/test/read.cgi/tech/1105953092/
16 ttp://pc8.2ch.net/test/read.cgi/tech/1111034732/
17 ttp://pc8.2ch.net/test/read.cgi/tech/1117870308/
18 ttp://pc8.2ch.net/test/read.cgi/tech/1121804136/
19 ttp://pc8.2ch.net/test/read.cgi/tech/1126977805/
20 ttp://pc8.2ch.net/test/read.cgi/tech/1131286411/
21 ttp://pc8.2ch.net/test/read.cgi/tech/1134327348/
22 ttp://pc8.2ch.net/test/read.cgi/tech/1138519327/
23 ttp://pc8.2ch.net/test/read.cgi/tech/1141742901/
24 ttp://pc8.2ch.net/test/read.cgi/tech/1146022352/
25 ttp://pc8.2ch.net/test/read.cgi/tech/1149259409/
26 ttp://pc8.2ch.net/test/read.cgi/tech/1153412251/
27 ttp://pc8.2ch.net/test/read.cgi/tech/1157874614/
28 ttp://pc8.2ch.net/test/read.cgi/tech/1162273941/
29 ttp://pc11.2ch.net/test/read.cgi/tech/1166708139/
30 ttp://pc11.2ch.net/test/read.cgi/tech/1173880452/
0006デフォルトの名無しさん
2007/10/16(火) 01:04:1132 ttp://pc11.2ch.net/test/read.cgi/tech/1181500187/
0007デフォルトの名無しさん
2007/10/16(火) 01:06:03過去スレ 32 間違えた
32 ttp://pc11.2ch.net/test/read.cgi/tech/1186995713/
0008デフォルトの名無しさん
2007/10/16(火) 05:19:040009デフォルトの名無しさん
2007/10/16(火) 12:15:22上司が2ch見てたらオワタな
0010デフォルトの名無しさん
2007/10/16(火) 20:05:060011デフォルトの名無しさん
2007/10/16(火) 22:54:360012デフォルトの名無しさん
2007/10/16(火) 23:25:100013デフォルトの名無しさん
2007/10/16(火) 23:25:560014デフォルトの名無しさん
2007/10/16(火) 23:29:27「前ってどっちですか?」なんて聞かれた日にゃ、
俺が上司ならブチ切れ。 使い物になんねから左遷だな。
0015デフォルトの名無しさん
2007/10/16(火) 23:34:200016デフォルトの名無しさん
2007/10/16(火) 23:40:12sub 前 {
print "hoge";
}
っていうサブルーチンの事だったと言うんじゃ・・・
0017デフォルトの名無しさん
2007/10/16(火) 23:48:47これにならって、電車について考えてみる。
止まっている電車はどっちが前だかわからない。
だが走ってる電車ならわかる。進行方向が前だ。
これはペチャパイ女にも言える。
プログラムの「前」とは、プログラムの進行方向なのでは無いか?
・・・で、プログラムってどっちに向かって走ってるの?
(とりあえず、ループとか条件分岐とかは考えにいれないでいい)
0018デフォルトの名無しさん
2007/10/16(火) 23:58:590019デフォルトの名無しさん
2007/10/17(水) 00:33:450020デフォルトの名無しさん
2007/10/17(水) 00:36:26顔が両側についている人はどうするんだよ
0021デフォルトの名無しさん
2007/10/17(水) 00:45:07ハリーポッターのヴォルデモートかいな(笑)
0022デフォルトの名無しさん
2007/10/17(水) 00:46:310023デフォルトの名無しさん
2007/10/17(水) 00:57:39そりゃ今お前が会話しているほうの顔が前だろ
0024デフォルトの名無しさん
2007/10/17(水) 02:54:21急に新スレまで行っててビックリだ
0025デフォルトの名無しさん
2007/10/17(水) 10:51:135.10っていつ出る予定なん?
5.10に期待することは?
とか聞いてみる。
// とか err って5.10から使えるようになるんだっけ?
0026デフォルトの名無しさん
2007/10/17(水) 15:50:55このスレにはマジメに質問するヤツはいないのか?
0027デフォルトの名無しさん
2007/10/17(水) 16:14:49perlとPHPのどちらを用いるのが良いと思いますか?
調べてもPHPが楽で軽くて良い、逆にperlは重いからダメだということばかり書いていまして…
0028デフォルトの名無しさん
2007/10/17(水) 16:16:08>>1
> CGIについての質問は板違いです。WEBプログラミング板でどうぞ。
> CGIとPerlの区別がつかない人もWEBプログラミング板に行ってください。
> (WEBプログラミング板 http://pc11.2ch.net/php/ )
0029デフォルトの名無しさん
2007/10/17(水) 16:37:38次スレ=前スレってことですか?
0030デフォルトの名無しさん
2007/10/17(水) 18:22:490031デフォルトの名無しさん
2007/10/17(水) 20:06:48そろそろ言語のひとつでも潰して力見せる時か
しかし、なんでもム板にもちこむなよな
ま、実際何とかしちゃう俺らも俺らだけどw
0032デフォルトの名無しさん
2007/10/17(水) 20:40:28どんな抗うつ剤を飲むとそういう狂言を吐けるようになるの?
0033デフォルトの名無しさん
2007/10/17(水) 21:30:430034デフォルトの名無しさん
2007/10/17(水) 21:38:550035デフォルトの名無しさん
2007/10/17(水) 23:29:310036デフォルトの名無しさん
2007/10/18(木) 02:36:16Tclの.expファイルをExpectモジュール使ったPerlのファイルに書き換えてるんだけど
TclのputsにあたるものはExpectモジュールでは用意されてないの?
0037デフォルトの名無しさん
2007/10/18(木) 13:50:250038デフォルトの名無しさん
2007/10/19(金) 11:38:04最近、いちいち質問者につっかかる厨房が徘徊しているようだ。
0039デフォルトの名無しさん
2007/10/19(金) 11:56:05同じ数列が発生しちゃうんだけど、やっぱり srand() 必要?
0040デフォルトの名無しさん
2007/10/19(金) 14:24:380042デフォルトの名無しさん
2007/10/19(金) 20:33:03http://www.marguerite.jp/Nihongo/Labo/Temp/ModPerl.html#random
http://www.donzoko.net/doc/memo/perlithreads.html
0043デフォルトの名無しさん
2007/10/19(金) 21:59:180044デフォルトの名無しさん
2007/10/19(金) 23:52:56→円周率の小数点以下n桁目の数値を乱数として取得
→以下nを一つずつ増やす
とか?
0045デフォルトの名無しさん
2007/10/20(土) 00:53:02もう一ひねりいりそうだな。
0046デフォルトの名無しさん
2007/10/20(土) 02:14:070047デフォルトの名無しさん
2007/10/20(土) 03:22:450048デフォルトの名無しさん
2007/10/20(土) 03:23:220049デフォルトの名無しさん
2007/10/20(土) 09:37:460050デフォルトの名無しさん
2007/10/20(土) 12:51:32http://www.lacim.uqam.ca/~plouffe/Simon/articlepi.html
0051デフォルトの名無しさん
2007/10/20(土) 13:55:32プラットフォームのデフォルトのエンコードだと仮定して、
どのプラットフォームでも同じように動作するようにスクリプト書きたい。
コード中にcp932とかハードコードしたくないので
.NETやpythonみたいにstdioのエンコードを取得したりできればいいと思うけど、
どうしたらいい?
0052デフォルトの名無しさん
2007/10/20(土) 15:59:53> @ARGV、標準入出力、テキストファイルの中身は全て
> プラットフォームのデフォルトのエンコードだと仮定して、
プラットフォームのデフォルトのエンコードが存在しない場合は?
0053デフォルトの名無しさん
2007/10/20(土) 16:41:50そういう環境は視野に入ってないっす。
ascii扱いでいいんじゃないの。
変なバイト列だったらエラーになればいいと思う。
どちらかというと、クロスプラットフォームよりも、
とにかく日本語版Windows上のアプリとしてちゃんと動き、
なおかつ、cp932をハードコードせずに済ませることの方を重視したいかな。
それとも、
OSのAPIレベルでデフォルトのエンコードなるものを取得する手段が無い場合ってこと?
Unixとかよく分からないので、そのへん分からない。
ターミナルのエンコードとか標準化された手段で取れないんだろうか?
0054デフォルトの名無しさん
2007/10/20(土) 17:16:45Guess
0055デフォルトの名無しさん
2007/10/20(土) 19:11:300056デフォルトの名無しさん
2007/10/20(土) 20:41:55どうもありがとう。
何をやるにも標準モジュールだけで足りない言語だなあ。
Perlでそれを言っちゃ駄目ですか?
自分達のリリースしたアプリや、日々の作業で使うスクリプトが
依存してるモジュールの管理ってどうしてるの?
cpanで自分のマシンにインストールするだけなら簡単だけど、
必要なファイルをよりわけて、
アプリのソースと一緒にリポジトリに保存しとかないとやばいよね?
それって簡単にできるんだろうか。
Perlのディストリビューション以外に、
どれだけのファイルを保存する必要があるのか、
ワケわかんなくなると思うんだけど。
0057デフォルトの名無しさん
2007/10/20(土) 21:03:05どんな言語でも不足分を補うのがライブラリなのに
それを否定されては最初から全部入りの言語を
使ってくださいとしか言い様が無い
単に自分がマイノリティな事に気付いてない
我侭言ってる子供にしか見えないけど
0058デフォルトの名無しさん
2007/10/20(土) 21:07:02_,,..r'''""~~`''ー-.、
,,.r,:-‐'''"""~~`ヽ、:;:;:\
r"r ゝ、:;:ヽ
r‐-、 ,...,, |;;;;| ,,.-‐-:、 ヾ;:;ゝ
:i! i! |: : i! ヾ| r'"~~` :;: ::;",,-‐‐- `r'^!
! i!. | ;| l| ''"~~ 、 i' |
i! ヽ | | | ,.:'" 、ヽ、 !,ノ イェ〜イ
ゝ `-! :| i! .:;: '~~ー~~'" ゙ヾ : : ::| 宮川達彦 見てる〜?
r'"~`ヾ、 i! i! ,,-ェェI二エフフ : : :::ノ~|`T
,.ゝ、 r'""`ヽ、i! `:、 ー - '" :: : :/ ,/
!、 `ヽ、ー、 ヽ‐''"`ヾ、.....,,,,_,,,,.-‐'",..-'"
| \ i:" ) | ~`'''ー----''"~
ヽ `'" ノ
005956
2007/10/20(土) 21:19:33Class::Accessorとか入って無いじゃん。
・・・いや、そういうことが言いたいんじゃなくて、
どうやって管理するの?ってのがレスの要点なんだけど。
0060デフォルトの名無しさん
2007/10/20(土) 21:31:01全部のマシンに入れる
0061デフォルトの名無しさん
2007/10/20(土) 21:33:520062デフォルトの名無しさん
2007/10/20(土) 21:34:30モジュールがCPANにある。
006356
2007/10/20(土) 23:24:35そのインスコされる全ファイルの把握と抽出の仕方がわからない。
ネットからじゃなくて、ローカルに保存したバージョンをインストールする方法も分からない。
>>62
なんてモジュールか教えて。ググっても分かんない。
そういうの、分厚いPerl本読んでも全然書いてないし。
0064デフォルトの名無しさん
2007/10/21(日) 00:11:38| ̄``''- 、
| `゙''ー- 、 ________
| ,. -‐ ''´ ̄ ̄`ヽ、_ /
|, - '´ ̄ `ヽ、 /
/ `ヽ、ヽ /
_/ ヽヽ/
/ / / / / / ヽハ
く / /! | 〃 _/__ l| | | | | | | ||ヽ
\l// / | /|'´ ∧ || | |ー、|| | | l | ヽ
/ハ/ | | ヽ/ ヽ | ヽ | || /|ヽ/! |/ | ヽ
/ | ||ヽ { ,r===、 \| _!V |// // .! |
| || |l |ヽ!'´ ̄`゙ , ==ミ、 /イ川 |─┘
| ハ|| || | """ ┌---┐ ` / // |
V !ヽ ト! ヽ、 | ! / //| /
ヽ! \ハ` 、 ヽ、__ノ ,.イ/ // | /
┌/)/)/)/)/)/)/)/)/)/)lー/ ` ー‐┬ '´ レ//l/ |/
|(/(/(/(/(/(/(/(/(/(/│|| |\ 〃
r'´ ̄ヽ. | | ト / \
/  ̄`ア | | | ⌒/ 入
〉  ̄二) 知ってるが | | | / // ヽ
〈! ,. -' | | ヽ∠-----', '´ ',
| \| | .お前の態度が | |<二Z二 ̄ / ',
| | | _r'---| [ ``ヽ、 ',
| | | 気に入らない >-、__ [ ヽ !
\.| l. ヽ、 [ ヽ |
ヽ| \ r' ヽ、 |
0065デフォルトの名無しさん
2007/10/21(日) 10:16:47取り出したいのですが、どうすればいいのでしょうか?
ActivePerl(漢字にちゃんと対応してない環境)です。
よろしくお願い致します。
0066デフォルトの名無しさん
2007/10/21(日) 13:11:06http://mikeneko.creator.club.ne.jp/~lab/perl/numerical_transform/#h4
http://perldoc.jp/docs/perl/5.8.4/perlfunc.pod#item_unpack_TEMPLATE_EXPR
@chr = unpack 'C*', 'SJISまじりの文字列';
0067デフォルトの名無しさん
2007/10/21(日) 13:38:26ありがとうございます
0068デフォルトの名無しさん
2007/10/21(日) 14:40:18cygwin で動いたけどActivePerl 5.8.8だとだめでした
'a'をキーインするとプログラムそのものが終了します
これってActivePerlの仕様でしょうか?
$SIG{ALRM} = \&handler;
$ppid = $$;
##alarm(5);
if( $childpid = fork() ){
#親プロセス
#-- 受信
print "親 $$ \n";
while(1){
sleep;
print "AHAHA\n";
}
} else {
#子プロセス
print "子 \n";
print $$,"\n";
while(<STDIN>){
if( /a/ ){
$x =kill('ALRM',$ppid);
# exit;
}
}
}
sub handler{
print @_[0], "\n";
}
0069デフォルトの名無しさん
2007/10/21(日) 21:15:23実装はそうなっているけど、仕様なのかな?
親から子へシグナルを送る場合には(killが)使えるけど、かなり不便。
子プロセス(forkエミュレーションで生成した別スレッド)には PostThreadMessage を使って
殆どのシグナルを送れるけど、それ以外の相手には INT,BREAK 程度しか送れない。
おまけに、それ以外は全てKILL扱い( TerminateProcess を使う)になっている。
(そして、5.6との互換性の為だと注釈が付いている)
Cが読めるなら、詳細は(Perlソースに含まれる)win32.c中の win32_kill 読んだ方が早いかと。
0070デフォルトの名無しさん
2007/10/21(日) 21:39:16その要素として$x[0]にa1,$x[1]にa2,・・・$x[255]にa256を代入する文がわかりません。
どなたか教えてください。
0071デフォルトの名無しさん
2007/10/21(日) 21:41:480072デフォルトの名無しさん
2007/10/21(日) 21:45:31>>71さん
foreach をつかって>>70のことを全部やる方法はわかりますか?
0073デフォルトの名無しさん
2007/10/21(日) 21:48:020074デフォルトの名無しさん
2007/10/21(日) 21:49:050075デフォルトの名無しさん
2007/10/21(日) 21:52:09>foreach 文を実行する前に,@x = (); を実行して長さ0の配列 @x を作ってください.
>そしてforeach 文を実行することで,$x[0] から $x[255] までの要素(それぞれ "a1" から "a256" までの値をもつ)を配列 @x に追加していってください.
とか、書いてあるんですけどどうすればよいのでしょうか?
0076デフォルトの名無しさん
2007/10/21(日) 21:53:220077デフォルトの名無しさん
2007/10/21(日) 21:56:350078デフォルトの名無しさん
2007/10/21(日) 21:56:55友達に聞けよ。
ここで聞くのは、小学生がお習字の宿題を親にやらせるようなもん。
教員が暇なら呼び出しを食らうぞ。
0079デフォルトの名無しさん
2007/10/21(日) 22:14:14ばあちゃんの知識は古すぎるよ。
いまはvoidコンテキストのmapはリストを作らないようになってるから大丈夫だよ。
0080デフォルトの名無しさん
2007/10/21(日) 22:56:56オレの実のばあちゃん以外にもう一人、そんなばあちゃんが欲しい
0081デフォルトの名無しさん
2007/10/21(日) 23:05:340082デフォルトの名無しさん
2007/10/21(日) 23:06:33for( px = x, pa = a+1; px != x+256; *px++ = *pa++ );
0083デフォルトの名無しさん
2007/10/21(日) 23:27:10syntax error at -e line 1, near ");"
0084デフォルトの名無しさん
2007/10/21(日) 23:31:11それは foreach を使う方がしっくりくる場面でさえ map で粋がっちゃう
微笑ましい子らの尻拭いを perl がやってくれるようになっただけだと
認識してるんだが、どうか。
0085デフォルトの名無しさん
2007/10/21(日) 23:32:270086デフォルトの名無しさん
2007/10/21(日) 23:51:180087デフォルトの名無しさん
2007/10/21(日) 23:53:390088デフォルトの名無しさん
2007/10/22(月) 03:35:11push(@x, $temp[$_]) foreach 0..255;
0089デフォルトの名無しさん
2007/10/22(月) 12:30:010090デフォルトの名無しさん
2007/10/22(月) 16:53:340091デフォルトの名無しさん
2007/10/22(月) 17:20:32涙拭けよ!
0092デフォルトの名無しさん
2007/10/22(月) 17:20:330093デフォルトの名無しさん
2007/10/22(月) 17:25:170094デフォルトの名無しさん
2007/10/22(月) 17:42:00この件におけるmapとforeachの対称性は、「それを使って粋がるか否か」「その使用法に変な自尊心を持つか否か」
なのだから、mapを多用する子が反撃したかったら、自分の言われたことを返すのではなく、
逆のことを言わなくちゃいけないんだよ。「粋がる気が無いforeach厨」とかね。
現状では、黒人が肌の色を差別されて、白人に向かって「お前の肌真っ黒w」って返してるようなものだよ。
そこは属性が逆なのだから、逆のことを言わなくちゃ反撃にならないでしょ?w
0095デフォルトの名無しさん
2007/10/22(月) 17:52:420096デフォルトの名無しさん
2007/10/22(月) 17:54:11そして例え話を慢心で語る奴も大抵的を外してる
0097デフォルトの名無しさん
2007/10/22(月) 17:56:37オウム返ししたかったら、なぜそうなのか、根拠を添えないとまるで説得力が無いよ。
どこがどういう風に的を外しているのか、ではどう書くべきだったのか。
そういうことを何も思いつかないまま、感情的にオウム返ししただけに見えちゃうよ。
あと、2行目のような怪しげな「統計」でやり返すことほど、自分を貶めるものもない。
「そういう傾向がこの世にあって欲しい」だけでは?
0098デフォルトの名無しさん
2007/10/22(月) 17:59:09map で粋がる奴はいても foreach で粋がる奴はいない
そんなこともわからずオウム返しに終始する、やっぱりmap厨は馬鹿丸出し
ってw
0099デフォルトの名無しさん
2007/10/22(月) 18:01:47何故言い返すのに逆の事を言わなくてはならないの?
逆のことを言えば優位になるとでも思ってるのか?
そして例え話が逸れ過ぎてて話にならない。
ただの厨房同士の喧嘩にマジレスしようとして
訳の分からない妄言を吐いてる人間にしか見えん。
0100デフォルトの名無しさん
2007/10/22(月) 18:03:43そんなモノを使って粋がる奴は恥ずかしいさ。
0101デフォルトの名無しさん
2007/10/22(月) 18:04:20反撃に乗り出すってのが、なんか薄ら寒いよね。普段どんなコード書いてるのか。
■ このスレッドは過去ログ倉庫に格納されています