1 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 19:10:40 ] "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/08/11 現在の最新版(安定版): 5.10.0 ● 2008/08/11 現在の開発版: 5.9.5 ▼ 前スレ Perlについての質問箱 36箱目 pc11.2ch.net/test/read.cgi/tech/1215569470/ リンク集は>>2-3 Perl 日本語処理の基礎の基礎 >>4 過去スレは>>5-6 あたり
2 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 19:11:01 ] [プログラミング自体の経験が無い奴はまずココを読め] Perlプログラミング講座: ttp://www.site-cooler.com/kwl/perl/ [本] リャマ: ttp://www.oreilly.co.jp/books/4873111269/ 駱駝: 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 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 19:11:21 ] [モジュール] 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メモ] 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 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 19:11:45 ] # [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 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 19:12:05 ] 1 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/
6 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 19:12:26 ] [過去スレ2] 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/ 31 ttp://pc11.2ch.net/test/read.cgi/tech/1181500187/ 32 ttp://pc11.2ch.net/test/read.cgi/tech/1186995713/ 33 ttp://pc11.2ch.net/test/read.cgi/tech/1192463997/ 34 ttp://pc11.2ch.net/test/read.cgi/tech/1199977642/ 35 ttp://pc11.2ch.net/test/read.cgi/tech/1208674881/ 36 ttp://pc11.2ch.net/test/read.cgi/tech/1215569470/
7 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 19:50:16 ] 前スレ過去ログ保存 www.23ch.info/test/read.cgi/tech/1215569470/
8 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 19:51:56 ] ちなみに前スレ寿命は 2008/07/09 - 2008/08/11
9 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 20:05:29 ] さすがPerlだ 日付の計算も簡単簡単
10 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 22:00:19 ] javaでもできるんだぜ
11 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 22:29:09 ] 前スレ985 > binmode STDOUT => ":encoding(cp932)"; > ↑もしかして、これって、シフトJISで出力する、って意味だったの? yes. 丸数字とかはJIS X 0208規格外の文字だから、 ENCODING名としてはShift_JISじゃなくてcp932を用いる必要がある。 上のは、「標準出力への出力時には、Perlの内部形式(UTF-8)文字列を cp932に変換せよ」という意味になる。
12 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 23:22:04 ] >>11 後は任せた! 俺? 俺はほら、なんかアレだよ、腹、そう腹がちょっとな。うん。 じゃあそゆことで! できればこの世でまた会おう!
13 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 03:52:06 ] >>11 cp932、っていうのが、perl国の言葉で、 「シフトJIS」って意味だったのね。
14 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 03:52:44 ] シャアの別名がキャスバルみたいな。 限られた身内しか知らないみたいな。
15 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 04:13:02 ] 違うよ。全然違うよ。 CP932 は狭義の Shift_JIS 領域外の拡張文字も含むよ。
16 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 05:37:07 ] >>13 >>15 にもう少し付け足しすると、 そもそも「cp932」ってのは、「マイクロソフト コードページ932」のことで、いわゆるMS社独自の拡張文字セットのこと。 で何が問題かって、そのMSが独自の日本語文字コードを策定する時に、「シフトJIS」をベースに拡張したんだけど、 なにをどう間違えたのか知らないが、一部文字の内部コードに本来の「シフトJIS」とは異なるコードを 割り当ててしまったために、いくつかの混乱が起こった。(特に「〜」(全角チルダ、波線)とか有名。ほかにもいくつかある。) つまり「cp932」は「シフトJIS」の別名ではないのは当然として、含むとか含まないとかでもない、 全く別の文字コードの一つとして認識していたほうがよいかと思う。(まあ現状、ほとんど同一視されてるけど) ちなみにWindowsの一般的なテキストエディタ(秀丸、TeraPad、メモ帳もか?)とかで編集する時、 保存コードが「Shift_Jis」あるは「SJIS」とかになってるけど、 正確に言えばこれは間違いで、本来なら「cp932」としなければならない。 コマンドプロンプトでの出力は、プロパティに「コードページ932」と出てる。(コマンドで chcp と打ってみれ) (その横に括弧書きで「日本語Shift-JIS」ってなってるけど・・)
17 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 09:23:36 ] もともと同じものだしね。unicodeとの対応関係が違って定義されてしまっただけなので、それ自体でみれば区別できない。本当にこんな状態にした先人は何やってんだよって感じです。勉強して愕然としました。
18 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 14:30:52 ] >>16 知らないって事は恐ろしいな。平気でこんな事が書けるなんて・・・
19 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 14:40:05 ] このスレも完全に馬鹿が馬鹿に教えるスレに成り下がったな
20 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 14:53:53 ] へ〜、と思って読んでしまった 実際は違うの?
21 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 15:16:33 ] WikipediaのShift_JISの項目を見る限りでは、MSは日本のPCでの符号化形式を 考えるときにShift_JISの策定に関わってたうちの一社 JISがずっと後にシフト符号化形式についての規格を取り決めたときに それとは矛盾する形の仕様にしちゃったので、当時のデファクト(今でも WindowsのCP932で使われているもの)との矛盾が発生してしまった そういう具合に読めるね
22 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 16:24:46 ] >>16 の文章を読むと 「マウスの付いたパソコンしか触ったことが無い世代が増えたね〜」 って感じがするな。
23 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 16:53:39 ] 生半可な知識でうだうだ書くよりも、「ググレカス」のほうがよっぽど親切だな。
24 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 18:14:17 ] 文字コード総合スレ part3 pc11.2ch.net/test/read.cgi/tech/1180250376/l50
25 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 18:51:15 ] ””ダブルコーテーションの中で、 -> を使うときは、半角スペースをあけて、 - > とすれば、問題無いの?
26 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 22:32:28 ] >>16 恥ずかしい奴が増えたなwwwwうぇwwっうぇえww
27 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 22:42:08 ] どう恥ずかしいのか、根拠を尋ねると即トンズラw
28 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 23:31:16 ] 前にも出たよね、長々と説明するんだけど、デタラメってやつ。 やっぱり精神病なのかな?
29 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 00:51:34 ] >>27 >>16 は比較的よく勉強していると思います。 めげずに精進を続けて欲しいです。 それはそれとして、前々スレの中盤あたりから、 回答すべき質問とそうでない質問の選別について、 みなさんセンシティブなんですよ。 その辺の空気も勘案して頂きたいところではあります。
30 名前:デフォルトの名無しさん [2008/08/13(水) 01:47:36 ] == 1.分かる @array = ("hoge","huga","hohoho"); print @array; # 展開されて表示される === 2.分からない @array = ["hoge","huga","hohoho"]; print @array; # 参照が表示される print @{@array}; # エラー === 3.分かる $array = ["hoge","huga","hohoho"]; print $array; # 参照が表示される print @{$array}; # 展開されて表示される 参照勉強中ですが、これ2番目どうなってるんですか? [ほげほげ]で帰ってくるのは無名配列の参照だから@arrayには代入できないと思ったらできるし とおもったら@arrayの一つ目の要素に配列の参照が入ってるんですねprint $array[0]で参照がひょうじできましたありがとう
31 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 02:15:43 ] おもしろいとおもってるのかな…
32 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 02:38:11 ] そんなこといわないで
33 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 08:18:55 ] >>29 > >>16 は比較的よく勉強していると思います。 > めげずに精進を続けて欲しいです。 >>16 は知らないことがあった場合、それを調べずに、思いつきの想像で補完する 異常者だから、精進はしないだろう。
34 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 10:02:58 ] 正解は?ねえ正解はなんなの??
35 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 10:17:59 ] >>25 これは?
36 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 10:18:59 ] perlのコンソールレベルで、midiって鳴らせないの?
37 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 10:26:45 ] >>35 何か問題でも?
38 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 10:35:42 ] >>36 perlのコンソールレベルの意味がわからんが インターフェースならMIDI::Music ってぐーぐる先生が言ってた
39 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 10:37:35 ] ファイルの任意の行を読むのはどうすればいいのでしょうか?
40 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 10:48:36 ] ぐぐれ
41 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 10:56:13 ] >>37 いや、半角スペースさえ開ければ、 問題なく - >を使っていいのか、だめなのか、ってこと。
42 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 11:08:58 ] だからそもそも何が問題なんだよ レスの内容が全く同じじゃ説明になってねえんだよこのナマコが
43 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 11:45:25 ] おちついて
44 名前:デフォルトの名無しさん [2008/08/13(水) 11:46:04 ] >>41 大丈夫ですよ 次の方、質問どうぞ
45 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 12:06:26 ] >>44 逆に、->と、半角スペースをまったく空けずに 使うと、勝手にデリファレンスと解釈されてしまう 危険があるってことですよね?
46 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 12:55:04 ] www.google.com/trends?q=perl%2Cruby&ctab=0&geo=all&date=all&sort=0 perlやべええ
47 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 13:02:11 ] >>41 そんなに気になるなら、 print "-" . ">"; とかすればいいだろ。
48 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 13:35:41 ] ちゃんとした変数のルールがぱっとでてこないけど /\$([a-z0-9_]+)->[\[{]/iにマッチしちゃうと アロー演算子として処理される可能性が高い 例えば以下は構文エラー perl -e 'print "$test->{\n"' perl -e 'print "$test->{}\n"' perl -e 'print "$test->[\n"' perl -e 'print "$test->[]\n"' 心配なら my $arrow = '->'; print "${arrow}"; でいいんじゃね?
49 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 15:14:35 ] >>48 <q cite="perldoc.jp/docs/perl/5.8.8/perldata.pod "> 識別子、つまり、英字か下線から始まってそれに英字、下線、 数字が続く文字列のことです。一部のケースにおいては :: (あるいはやや古風な ') で分けられた識別子の並びであってもかまいません。 </q> 即ち use byte 相当の状態なら /^[A-Z_a-z][0-9A-Z_a-z]*(?:(?:::|')[A-Z_a-z][0-9A-Z_a-z]*)*\z/
50 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 17:05:28 ] >>45 意図しないデリファレンスを避けたきゃ、変数名の範囲をブレースで囲めばいいだけだろ? 基本だぞ。>>48 氏も一部で使ってるけど。 # 変な部分(作法の面で)はあくまでも例ということでご容赦。 $x = 'hoge' ; $x->{hoge} = 'foo' ; print "$x->{hoge}\n" ; # => foo が返る。ほんとは hoge->{hoge} を期待してたら↓ print "${x}->{hoge}\n" ; # => hoge->{hoge} (無用のデリファレンスを避けられる)
51 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 17:06:47 ] シングルコーテーションと.演算子を使うように心がければ何も悩む必要はない
52 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 18:32:06 ] ┌────────┐ │変数名─アドレス │ │ │ │ データ │ └────────┘ 変数名が$hogeでデータがテステスの時 つまり$hoge = "テステス"の時、 print $hoge;だとデータ部分が表示されて print \$hoge;だとアドレス部分が表示されるけど print \\$hoge;も問題なく表示できると言うことは この時内部的に\$hogeというアドレスをデータに持つリファレンスが生成されていて その内部で生成されたリファレンスのアドレスが表示されていると言うこと? つまりprint \\$hogeの裏側では↓こういうのが内部で行われてるんですか? $hoge_reference = \$hoge; print \$hoge_reference; ┌────────┐ │$hoge_r─\$hoge_r.│ │ │ │ \$hoge │ └───╂────┘ ┌──────╂─┐ │ $hoge ─ \$hoge │ │ │ │. テステス │ └────────┘
53 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 19:23:54 ] >>52 > print $hoge;だとデータ部分が表示されて > print \$hoge;だとアドレス部分が表示されるけど ちがう
54 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 21:14:34 ] ちがわない
55 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 23:32:50 ] >>52 っ[Devel::Peek]
56 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 02:02:57 ] >>52 それであってるよ
57 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 17:55:33 ] print $hoge; # $hoge の持つ値が表示される print \$hoge; # $hoge を指す参照を得て、その内部表現を文字列化したものが表示される 「データ部分」「アドレス部分」という表現には、この辺の理解不足感が漂っている。 >>52 がんがれ。
58 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 18:02:06 ] そこまで書かなかっただけだろ。
59 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 18:34:39 ] >>58 おまえの推測はどうだっていい。
60 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 18:41:43 ] 質問自体は無視して語句の間違いの指摘に熱中する俺らはム板の鏡や!
61 名前:57 mailto:sage [2008/08/14(木) 20:12:44 ] >>60 質問自体は >>55 ,56 で解決だろうから放置。 語句の間違いは要点ではなくて、 その表現が出てくる背景を邪推してみた。 単に口下手というか慣れていないだけだったら 当方まったく的外れなのでスルー推奨。 >>53 の気持ちは分からないでもないけど、 「ちがう」で終わりではあんまりだろうと思い、 >>53 の感じたであろう、漠然とした「チガウ感」を >>57 で言語化してみた。 余計なことだった。今は反省している気がする。
62 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 20:19:46 ] 騙すのはいけないやな。
63 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 03:17:01 ] でもプログラムって 1文字違っただけで動かなくなるから そういう性格の人が向いてるのかもね。
64 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 04:10:49 ] 高校の数学をちゃんとやった人なら、 一つの値をもつものがスカラー、 複数の値を持つものがベクトル、 ということは覚えていますね。 、、、って参考書に書いてあるのだが、 英語読みだとベクター、日本語読みだと ベクトルってことは、もしかして、 スカラーも、日本語読みで、スカトル、とかって 変な読みにされてた可能性もあるのかな。
65 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 04:13:49 ] my $hoge=q|a|; say $hoge; say \$hoge; ↓実行結果 a SCALAR(0x1a9a6c4) ↑これはなに?
66 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 04:22:11 ] 正規表現って、マッチと置き換え、そのほかに なにか使い道ある? (1)マッチ (2)tr///使用の置き換え (3)s///使用の置き換え おおまかにわけて この3つしかないとおもうんだけど。
67 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 04:32:37 ] system ('notepad.exe','abcde.txt'); これでメモ帳が開ける 感動
68 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 04:33:50 ] sysytem ('aaa.midi'); ↑こんくらいのカンタンな文法で midiを鳴らすってできない?
69 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 04:36:05 ] 板違いです。
70 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 05:09:24 ] このスクリプト、思い付きをすぐ投げてくるだけじゃなくて 突っ込みどころを用意してくるから食いつく人が出るんだよね。
71 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 06:07:05 ] 大手大企業に勤める俺が簡単に説明してやろう。 100人以上見てきたけど、この傾向だけは異論を許さない。 [クラス1]MARCH:テキストや本を見て仕事をする [クラス2]旧帝大、早慶:テキストや本の原理を理解して仕事する。 [クラス3]東大、京大:テキストや本の原理を新たに創造する。
72 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 06:15:59 ] 誤爆したと書かないことに異論を唱えたい
73 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 06:42:54 ] books.google.co.jp/books?as_q=perl&num=100&as_brr=0&btnG=Google+%E6%A4%9C%E7%B4%A2&as_epq=&as_oq=&as_eq=&as_brr=0&lr=lang_ja&as_vt=perl&as_auth=&as_pub=&as_drrb=c&as_miny=&as_maxy=&as_isbn= ↑これで、ファイヤフォックスが起動して、 グーグルブック検索のページが開くよ! すごいね!
74 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 06:44:07 ] >>73 はまちがえた。 system ("C:/Program Files/Mozilla Firefox/firefox.exe","books.google.co.jp/books?as_q=perl&num= 100&as_brr=0&btnG=Google+%E6%A4%9C%E7%B4%A2&as_epq=&as_oq=&as_eq=&as_brr=0&lr=lang_ja&as_vt= perl&as_auth=&as_pub=&as_drrb=c&as_miny=&as_maxy=&as_isbn="); ↑これで、ファイヤフォックスが起動して、 グーグルブック検索のページが開くよ! すごいね! 改行はエディタで手動でつないでね!
75 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 06:45:42 ] (1) ところで、rubyのときは、IEを起動するには win32APIを使わないとだめだって言われたんだけど、 なんでPerlはWin32APIを使わないでもファイヤフォックスを 起動できるの? (2) Perlもwin32APIを使えるの? もし使うとしたらどういう時? CD-ROMドライブのフタをあけたいときとか?
76 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 09:15:03 ] (3) どうしてググらないの?どうして自分で調べようと努力しないの?
77 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 10:38:06 ] use feature qw( :5.10 ); my $a; $a=<>; say qq|$a|; ↑これでキーボードから入力してエンター押すと、 キーボードから入れた文字列が画面に表示されるんだけど、 <stdin>って書かなくてもいいの?
78 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 11:09:33 ] (4) どうして自分で実際に試した、目の前の現実を信用できないの?
79 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 11:20:29 ] use utf8; use open IO => ":encoding(cp932)"; binmode STDIN => ":encoding(cp932)"; binmode STDOUT => ":encoding(cp932)"; binmode STDERR => ":encoding(cp932)"; use Encode; use feature qw( :5.10 ); $|=1; #---------------------------------- my $a; my $c=1; my @d; for ($c=1;$c<=7;$c=$c+1){ print "$c"."文字目"; #←●1 #print "$c文字目"; #←●2 $a=<>; chomp $a; push (@d,$a); } say qq|\n|; my @b; say q|ソートの結果は、、、|; @b=sort @d; say qq|@b|; --------------------------- ↑これで、●1は動くのですが、●2にするとエラーになります。 実質的に1と2は同じもののはずなのに、なぜでしょうか?
80 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 11:30:50 ] >>78 アスベスト吸って、肺に入って、 中皮腫になるまで、20年間ありますよね。
81 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 11:41:42 ] このスレって、年齢分布、どれくらい? 10台 ■ 20台 ■ 30台 ■■■ 40台 ■■■■ 50台 ■■■■■■■■ ↑こんな感じ?
82 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 11:48:06 ] print "$c 文字目"; これだとエラー出ないんだよね。 print "$c文字目"; これだと、エラーになる。 どうも、 $c文字目 これ全部をスカラー変数だと思い込んでるみたい。 半角スペース空けないとだめなのかな。
83 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 12:00:25 ] >>50 読め
84 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 12:02:07 ] >>79 >>82 use utf8; use open IO => ":encoding(cp932)"; binmode STDIN => ":encoding(cp932)"; binmode STDOUT => ":encoding(cp932)"; binmode STDERR => ":encoding(cp932)"; use Encode; $c文字目 = 100; print $c文字目,"\n"; $文字目 = 200; print $文字目,"\n";
85 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 12:03:42 ] $うんこ = 300; print $うんこ,"\n";
86 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 20:25:17 ] 今日、参考書を読んでいて、 use English という、ステキ構文を発見した。 おまいら、ちゃんとこういう便利なものは おしえてくれなきゃ
87 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 20:27:39 ] perlってさ、データーを放り込むのに (1)<stdin>でキーボードから打つ (2)<>でキーボードから打つ (3)ファイル名を指定して、ファイルごと食わす (4)引数で入れる perl abc.pl abcdeみたいな (5)#!usr/local/bin/perlを指定して、perlを省略して食わすabc.pl abcdeみたいな (6)ファイルごと食わして、その処理結果を別ファイルに出力する perl <a>bみたいな 以上の6つのやり方があるよね
88 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 20:56:02 ] 落書きはチラシの裏にしろ
89 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 22:29:30 ] プロトタイプについて質問です。 通常、サブルーチンにプロトタイプを付けて記述し、コードの先頭付近で sub Func1( \@ ) ; とでも書いておき、そのあと実際に呼び出すときは Func1( @array ); と書けば自動的に配列のリファレンスが渡されます。 また、このときスカラーなど間違った変数を渡すとエラーとなりますよね? モジュール HogeHoge.pm のパッケージ HogeHoge 内に同様のサブルーチンを記述したとします。 このモジュールの先頭付近で package HogeHoge ; sub Func1( \@ ); と書いてみたのですが、うまく機能しているように見えません。 自動的にリファレンスが渡されるわけでも、別の変数を渡した時にエラーが起きるわけでもありません。 書いても書かなくても同じ挙動に見えます。 どのように記述するのが正しいのでしょうか?
90 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 22:45:49 ] プロトタイプは引数の型チェックをするために使うものではなく、 変則的な呼び出し方をする一部の組み込み関数を再定義するときだけ使うもの。 リファレンスを渡したいなら明示的にリファレンスを渡すほうがよい。
91 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 22:52:51 ] モジュール化する以上、自分が使うとも限らないですし(数ヵ月後の自分は他人だ) エラーを出せるなら出して欲しいんですよね。
92 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 16:53:21 ] Perlで、listでなくてset(集合)のデータ型を提供するような ステキなモジュールはありますか? CPANを探しているんですが、なかなか見つからなくて・・・ Pythonに組み込みで存在するアレです
93 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 17:16:36 ] 質問 use Win32::FileOp qw(ShellExecute); ShellExecute('open', 'notepad.exe'); ↑このコードをコピペして実行したら、 Can't locate Win32/FileOp.pm in @INC (@INC contains: C:/Per at untitled1.pl line 1. BEGIN failed--compilation aborted at untitled1.pl line 1. というエラーが出ました。 ひょっとして、Win32::FileOpは標準で入っていないの?
94 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 17:42:56 ] >>89 === HogeHoge.pm === package HogeHoge ; use Exporter; use vars qw(@ISA @EXPORT) ; use subs qw( Func1(\@) ) ; @ISA = qw(Exporter); @EXPORT = qw(Func1 ); sub Func1 (\@){ print qq{42\n} ;} 1; === hoge.pl === use HogeHoge ; my @arr = (1) ; Func1 @arr ; # my $var = 1 ; # Func1 $var ; === 実行 === perl hoge.pl 42
95 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 18:57:09 ] >>93 また質問中が湧いたか そのくらいてめぇで調べろ、ぼけ
96 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 20:01:15 ] >>92 search.cpan.org/dist/Set-Scalar/lib/Set/Scalar.pm union intersection complement 辺りの思いついた語で CPAN 漁ってて見つけたもの。 Python 知らないしこれを使ったこともないので素敵かどうかはわかりませんが。
97 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 21:29:04 ] @a=<stdin>; ↑これやったら、永遠にキーボード入力の フェーズから、抜けられない?
98 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 21:32:56 ] EOFを送れ。 UNIXならCtrl+D, WinならCtrl+Z(多分)
99 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 22:02:16 ] 古い参考書読んでたら、 「Perlでは残念だがらユニコードは使えません」 とかって書いてある。いったいいつから 使えるようになったんだ?
100 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 22:03:10 ] use diagnostics; ↑これって普通に使うの? テンプレには記載がないようだけど。