1 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 12:22:12 ] "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/09/21 現在の最新版(安定版): 5.10.0 ● 2008/09/21 現在の開発版: 5.9.5 ▼ 前スレ Perlについての質問箱 37箱目 pc11.2ch.net/test/read.cgi/tech/1218449440/ リンク集は>>2-3 Perl 日本語処理の基礎の基礎 >>4 過去スレは>>5-6 あたり
2 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 12:22:38 ] [プログラミング自体の経験が無い奴はまずココを読め] 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/09/21(日) 12:23:02 ] [モジュール] 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 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 12:23:32 ] # [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/09/21(日) 12:24:39 ] 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/09/21(日) 12:25:07 ] [過去スレ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/ 37 ttp://pc11.2ch.net/test/read.cgi/tech/1218449440/
7 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 12:37:52 ] すれ立て乙
8 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 14:28:51 ] もういいです
9 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 14:42:33 ] 同感だが、ないと寂しいのも事実
10 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 14:43:26 ] いままさに転職で就活してるが、PerlとかPHPとかできますって言っても 「PHP()笑ですか。Javaとかできますか?」って言われるわww ちなみにPerlの話題なんて微塵もでません。言っても「へぇ…」程度 あんまりJavaJava言われるから、Javaのコードすら書いたことないのに いま勉強中です!資格取得めざしてます!!なんて言うようにしてみたら Javaでちょっとコード書いてきて見せてとか言われてしまって、 そこで初めてJava触ったけど MVCアーキテクチャとかっていうやつだっけか。たしかにこれは面倒だなw 仕事でいろいろ分業するのにはこういう作りはすごくよさそうだけど 個人で趣味でやるならPHPで十分目的は達成できるしPHPでいいだろうな
11 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 15:10:14 ] ファイルハンドルからファイル名を取得することはできますでしょうか? xxxxxxみたいな関数とかあります? open my $fh, "data.txt"; $file_name = xxxxxx $fh; print $file_name; #=>data.txt
12 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 15:23:53 ] 無いと思う。つか、ファイルを開く時点で名前を把握してるのに、なんでわざわざ ファイルハンドルから取得する必要がある?
13 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 15:47:31 ] >>12 ないですか。 ファイルロックをする関数でflockが有効ならflockを、そうでなければ、ファイル名をベースにした ディレクトリ作成をしようと思いました。 sub lock { my $fh = shift; if ($valid_flock) { flock($fh, 2); } else { my $file_name = xxxxxx $fh; my $lockdir = $file_name."dir"; my $retry = 5; # リトライ回数セット while (!mkdir($lockdir, 0755)) { # 作成。出来なければ待つ if (--$retry <= 0) { &error("BUSY"); } # 5回ダメならあきらめる sleep(1); # 1秒待つ } }
14 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 16:37:34 ] >>13 flock() が使えない環境で動かす必要があるなら、最初から他の方法に統一したほうがいいように思えます。 flock() だけ分岐させても、どちらに分岐するかによって flock() 依存の機能の利用可否が異なりますから面倒になるだけです。 それはそれとして、その構成だと呼ぶ側で既に open() してるわけですから、 引数にファイル名を渡してやればいいんじゃないですかね。
15 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 17:00:49 ] >>14 flockが使える環境ならば、ファイルロック機能が強固なflockを使ってもらい、使えない場合は、 ディレクトリ作成方法でまかなおうかと思いました。 ファイル名も引数で渡す方法でいこうと思います。
16 名前:デフォルトの名無しさん [2008/09/23(火) 17:27:20 ] PerlでCのEnumみたいなのを定義する上手い方法はないかな? それともハッシュでやるしかないんでしょうか?
17 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 17:39:20 ] >>16 cpan にあるなあ ttp://search.cpan.org/~zenin/enum-1.016/enum.pm 求めるものかどうか知らんけど。
18 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 17:40:38 ] >>17 あーこれグッドです。どうもありがとうございます。
19 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 18:03:50 ] 定数って正規表現中で使えないのか・・・当たり前だよね やっぱりPerlならHashでやるのが一番いいのかもね
20 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 18:52:06 ] (??{}) いや、なんでもない
21 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 10:13:37 ] >>19 <q cite="www.kt.rim.or.jp/~kbk/perl5.005/perlmod.html#Symbol_Tables "> シンボルテーブルの別の使い方は、“定数”スカラーを生成するためのものです。 *PI = \3.14159265358979; この後、$PIを変更することはできません。 </q> #!/usr/bin/perl -w use strict; use constant FOO => 'foo!'; our $BAR; *BAR = \'bar!'; print "${\FOO}$BAR\n", eval { $BAR = 'bar?' } || $@; __END__
22 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 10:30:46 ] >>21 >>16 からの話の流れを読むと、 列挙型が欲しくて enum (>>17-18 ) を使ったけれど、enum の提供する定数はサブルーチンベースなのでパターン内に展開できない(>>19 )。 それに対し >>20 が控え目に打開案を示した、という流れ。 シンボルテーブルベースの列挙型を新たに実装する手もあるし、 Readonly.pm を使う手もあるけど、 変にこだわりさえしなきゃ >>19 の通りハッシュで済む話だね。
23 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 06:39:52 ] qb5.2ch.net/test/read.cgi/operate/1222311594/210 perlで書くとこうなる
24 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 11:14:17 ] Perlを勉強してやる!
25 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 14:32:07 ] >>23 read.cgiはCで書かれてるつーの。
26 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 15:14:43 ] >>24 つ、通報しま
27 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 15:42:10 ] >>23 みたいに、内容の違うpageを自分の妄想と結びつけてソースだと言い張る 頭がおかしい人間がこの掲示板には多いよね。 >>23 のリンク先は、「cでperlみたいに正規表現を使いたいんだけどどうすりゃ良いの?」 というひろゆきの質問スレなのに、それがわからない。 煽りでなしに、病院で診察を受けた方が良い。
28 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 15:54:38 ] 自分で掲示板作って 自分でそこで質問する、って 最強だよな。
29 名前:デフォルトの名無しさん [2008/09/27(土) 08:14:06 ] do{last}while(1) なぜこれがエラーになってしまうのでしょう? do{last}for(1) これはおkなのに
30 名前:デフォルトの名無しさん [2008/09/27(土) 10:17:16 ] 文字列がどれだけ合っているかを判別するにはどのようにしたらよいでしょうか? 以下のように ------------- (比較元) 我が輩は猫である。 我が輩は人である。 -> 90% ほど合致。 我輩は猫である。 -> 90% ほど合致。 猫である我が輩は。 -> 5% ほど合致。 ------------- ように算出できないでしょうか?
31 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 18:27:16 ] www.aoky.net/articles/steve_yegge/tour_de_babel.htm 「そしてもちろん、Perlにはそのほかにもたくさんデザイン上の 奇妙なところがある。たとえば「コンテキスト」を見るといい。そ れはラリーがシェルスクリプトからコピーしたN変数ネームス ペースやシジルによるデリファレンスのようなおかしな決断の ぞっとする副産物だ。Perlでは、すべてのオペレータ、すべて の関数、すべての操作が、その「コンテキスト」に従い、6つの うちのランダムな1つの仕方で振る舞う。与えられたコンテキス トにおいて特定の操作がどう振る舞うかを支配するルールや ヒューリスティクスというのは存在しない。あなたは単にすべて 暗記しておくしかないのだ。 例がほしい? スカラーコンテキストでハッシュにアクセスすると 、分子が割り当てられたキーの数、分母がバケットの数となっ ている分数を内容とする文字列が得られる。クジラのはらわた だ。そう言ったでしょ。」
32 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 18:28:54 ] >>31 を読んで、「ほんとかよ?」と思ったので実験してみた。 my $a; my %b; %b=qw (a b c d e f g h); $a=%b; print "$a\n"; 実行結果。 4/8 本当だ! この仕様考えたヤツはいったい何が不満だったのか?
33 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 18:50:31 ] >>30 Levenshtein距離とか
34 名前:デフォルトの名無しさん [2008/09/27(土) 19:33:23 ] >>32 Javaで言えばただのtoStringじゃん
35 名前:デフォルトの名無しさん [2008/09/27(土) 19:38:22 ] ついでに言えばperlのコンテキストもOOPの演算子オーバロードも(使う方からすれば)似たようなもの
36 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 20:54:49 ] perlのかっちょええエディタを紹介して。 コードの自動補完とかできるやつ。
37 名前: ◆TWARamEjuA mailto:sage [2008/09/27(土) 22:49:21 BE:654023-2BP(7089)] (・o・)ポカーン
38 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 23:04:10 ] >>29 do ~ while 構文(及び while 修飾子)で last したければ % perl -le '{ do{last} while (1) } ;' みたくブロックで囲む必要がある。 詳しくは、 perlsyn の while の項を読め。 ちなみに next の時は、 % perl -le 'do{{next}} while (1) ;' B::Deparse で syntax OK になる分タチ悪がね。 % perl -MO=Deparse -le 'do{last}while( 1 ) ; ' (略) -e syntax OK つか do ~ while 構文なんて使うなよ…
39 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 23:15:21 ] 「い」が抜けたorz...
40 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 23:27:27 ] 「でもいい」も抜けてたな。 酒飲んで書き込むもんじゃねえなあ
41 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 00:26:39 ] >>29 while(1)・・・でいいのをわざわざdo・・・while(1)で書いてるくらいだから、 よっぽど、do-while文が好きだったんだな。どの言語の影響だ? Perlのdo-while/untilループは通常のループ制御が使えんから、使い物にならんよ。 >>38 みたく、みっともないことになる。
42 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 00:35:15 ] Exporterを使って全関数をExportするにはどうしたら良いでしょうか? @Exportに全関数名を入れるのは骨が折れるのでこの方法は避けたいです。
43 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 01:25:25 ] 正規表現で.+と.+?の違いはなんでしょうか? 前者は任意の文字が1個以上続くというのはわかるのですが、後者がわかりません。 よろしくお願いします。
44 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 01:59:56 ] マンドクセー 最長と最短
45 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 02:26:47 ] >>42 Perlは関数とか実行時に動的に割付可能な言語だから、いちいち名前を列挙するのが当然と思われ。 ま、俺もPerlあんま詳しくないんだけど、自動で全部というのはプラクティスとしてありえないと思う。 強引にやるなら、コンパイル時にシンボルテーブルのコードっぽいやつをとりあえず @EXPORTに突っ込むことが考えられるが、こんなことやってるのいままでPerl関係のコードで見たことがない。 見たことがないということは、やらない方がいいということ。 @EXPORT = map {*{$_}{NAME}] grep {*{$_}{CODE}} values %PACKAGENAME:: PBPにサブルーチンにEXPORT属性を設定する方法が紹介されているので、ここらあたりで 妥協できないか。
46 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 08:59:51 ] 他のモジュールと関数が衝突すると痛いので、 オブジェクト指向化推奨されてる。 EXPORTするのは定数ぐらいにした方がいい。
47 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 09:47:27 ] 大量に定数定義するモジュールで45みたいなことやったわ。 全部大文字のシンボルを@EXPORT_OKに追加するとかそんなの。 いちいち列挙するのだるかったのでつい魔が差した
48 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 21:15:00 ] perlはそのうちこうなる↓ namidame.2ch.net/test/read.cgi/news/1222604031/
49 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 01:05:31 ] >>45 やはり全部書くべきですか。ただ面倒というだけで問題は無いのでひとまずはそれで行こうと思います。 PBPというのはPerl Best Practicesですね。まだ読んだことが無いので手を出してみます。 >>46 薄学のためオブジェクト指向についてまだよく分かってないのですが、 確かに全関数をエクスポートするくらいならオブジェクト指向で組めばよい気がしてきました。 まだ関数名の衝突という事態には当たったことはありませんが、 オブジェクト指向で組むことも考えてみようと思います。
50 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 08:03:59 ] ときどき開発者の中には、特に Perl のプログラマーは、 PHPを「劣った」言語だと考える人がいます。 それについてはどう思いますか。
51 名前:デフォルトの名無しさん [2008/09/29(月) 11:08:45 ] PHPっつたって、バージョン違えば別言語なんだからバージョン言ってもらわないと。 5.2と5.3のマイナーバージョン違いでさえ大幅に違うんだからさ。
52 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 11:40:15 ] 劣ったとは思わんがPerlや他の言語を元にWebに特化したわりには冗長だな そしてプログラミングセンス的に劣った奴でも簡単に扱えるのは良いんだか悪いんだか・・・ Perl以上に出来る奴と出来ない奴の差が激しいかもね 無駄に関数多いけど新しいものをどんどん取り入れようとしてる姿勢は良いと思う が、ますます冗長になっていく・・・ 某社ではプログラマにはPHPは使わせてなかった あんなのはHTMLのコーダーやデザイナーが埋め込みで使うスクリプトだ、と 極論ではあるがそういう使われ方が結構多いんじゃないか?
53 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 11:54:26 ] PHPは成長中の言語だから、一概に言えない。 ただ、Perlと同じく継ぎ接ぎの酷さが見えてきた感じはする。
54 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 22:26:06 ] ある程度以上メジャーになってしまうと、あとから大規模に言語仕様を弄るのは大変だからな。 同様の問題は、PerlやPHPに限らずRuby,PythonとかC/C++とかも多かれ少なかれ抱えてると思う。
55 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 07:11:06 ] おまいら、eclipse + padwalker + epic 使ってる?
56 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 08:21:44 ] builder.japan.zdnet.com/news/story/0,3800079086,20361311,00.htm ここみたら、perlのエディターが Perl * EPIC * PerlBuilder * PerlComposer * Perl Editor * Perl Express * Open Perl IDE * OptiPerl * Zeus こんなに紹介されてるんだけど、どれが最強?
57 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 08:51:27 ] 1級perl検定 以下のコードのバグを見つけよ (制限時間15秒) --------------------------------------- for ( my $a=1; $a<=10; $a++ ) { print "$a\n" if $a=3; }
58 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 09:01:22 ] www.donzoko.net/doc/memo/unlikeperl.html ここに書いてあるんだが、ひょっとして モジュール同士で相性が悪いってことはあるのか? もしそれが本当だとしたら、モジュールなんでもかんでも いれたり使ったりすると原因不明のバグに悩まされることにも つながりかねないのか?
59 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 10:08:24 ] >>57 if $a==3 かな? 15秒以内でみつけたから、俺、上級?
60 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 13:06:08 ] 配列の任意の要素を削除するにはどうすればいいのでしょうか? @arr = (1, 2, 3, 4, 5); $del_element = 3; ($del_elementで指定した要素を削除する処理) print "@arr"; #=> 1 2 3 5
61 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 13:08:48 ] >>60 splice
62 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 13:21:49 ] >>61 d できました
63 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 13:41:24 ] Perl::Critic ってなんなのかなぁ?
64 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 13:48:14 ] >>58 SwitchとAcme::Comment がソースフィルタタイプのモジュールだからだろ? ソースフィルタタイプなんて一個でも気持悪い(元のコードを改変すんだぜ?)のに モジュールの二段重ねとか、そりゃ危険は高かろう。 つか、フィルタタイプだろうとなかろうと、cpan.searchでフィックスしてない バグくらいは閲覧してから入れるか否かの判断しろよ、、、
65 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 14:09:56 ] blog.nqou.net/2006/11/20225449.html ここに書いてある perltidy ってのをいれようと思ったんだが、 ActiveperlのPPMには入っていないようだ。 しかし、Acme::tidyというのが代わりに検索で 出てくるんだが、これでも同じなのか?
66 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 14:14:28 ] googlewhacks.blogspot.com/2007_07_01_archive.html いったいこれはなんだー
67 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 14:29:04 ] >>65 自己解決した。 検索のときにハイフンを入れてなかった。 ハイフンいれたら検索で出てきた。
68 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 15:19:21 ] perlcritic 使い方がいまいちよくわかんね。
69 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 19:15:02 ] eclipse + padwalker + epic でperlなのだが、 prin って打ったときに、 print printf って候補を出してくれる、っていうのはできないの?
70 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 19:34:32 ] RSS1.0、RSS2.0、Atom0.3のRSSを生成したいのですが、 オススメのモジュールなどありますでしょうか? できればインストールが簡単(*.pmコピるだけとか)で扱いやすいので。
71 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 22:31:04 ] UNIXタイムスタンプ→グレゴリオ歴に変換するにはどうすればいいのでしょうか。 localtime((stat 'hoge.png')[9]) としても、どうも変な変換になっているようなのです。
72 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 21:08:27 ] CPANモジュールについてはここでいいですか? Text::MeCabの最新版 search.cpan.org/~dmaki/Text-MeCab-0.20007/ がどーしてもMacOS Xにインストールできません。 Makefileの-arch ppcを削ったらmakeできましたが、 それをmake installしてもまともな結果になりません。 どなたか御存知ですか?
73 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 21:15:48 ] >>71 scalar localtime((stat 'hoge.png')[9]) にすると希望どおりだとかいうオチでは。 >>72 前にCPAN on OS X で困ってる人が来ていろいろやりとりしてたら 「MacPortsで解決しました!」という出来事があったのでこわいのです。
74 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 22:02:08 ] >>73 > scalar localtime((stat 'hoge.png')[9]) にすると希望どおりだとかいうオチでは。 マニュアルを見ると希望通りに出来ると云うオチでしょう。
75 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 23:14:32 ] perlソースコードの1行目のshebangを置換させるようなプログラムを 以下みたいなone-linerで書きたいのですが perl -pi.bak -e 's/#!.*/#!c:\\perl\\bin\\perl/ if($. == 1)' *.pl $. の行数が、2つめのソース以降も値を引き継いでしまいます なにかうまい方法はないでしょうか
76 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 01:03:19 ] >>75 組み込み関数の eof を調べてみたらいいと思うよ。
77 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 01:19:21 ] >>76 ありがとうございます eofは使ったことがありませんでした 試してみます
78 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 07:41:10 ] 普通に丸呑みモードでいいやん? perl -i.bak -0777pe 's/\A#!.*?\n/hoge\n/ ' *pl
79 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 18:05:27 ] cgi掲示板なのですが、ログインすると文字化けしてまして、 コードがISO、西ヨーロッパなどとなってしまうのです。 そこで、headerの部分にcharset=を含めようとしてるのですが、 何度やっても、500エラーになってしまいます。 sub header { print "Content-type: text/html\n\n"; print "<!--//HEAD//-->\n"; print "<html><head>\n"; print "<META http-equiv="Content-type" content="text/html; charset=Shift_JIS">\n" print "<title>CGI Control Panel</title>\n"; print "<META http-equiv="Content-type" content="text/html; charset=Shift_JIS">\n" ↑ を追加して日本語になるように、お願い致します。
80 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 18:26:15 ] >79 WebProg板へ行った方が的確な回答が得られるんじゃないかな。 で、" " の中で、更に " " を使うな。 人間ならともかく、コンピュータはどこまでが " " の範囲なのか理解できない。
81 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 18:27:33 ] すでにWebProgにマルチしてるよコイツ
82 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 22:09:29 ] 質問です。ActivePerlをインストールしコマンドラインでppm install DBD::mysqlを実行したのですが ppm install failed: Can't find any package that provides DBD::mysql というエラーメッセージが出ます DBD::mysqlはリポジトリから無くなってるのでしょうか?
83 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 22:32:19 ] 追記:PERLバージョン5.10.0です 新バージョンに対応してるDBD::mysqlがないということでしょうか
84 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 23:29:38 ] Active Perl 5.8.8 では ppm install DBD:mysql できるぞ。 無理して 5.10.0 使わんでもいいんじゃない?
85 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 23:47:26 ] >>82 cpan使えば?
86 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 12:29:01 ] pc11.2ch.net/test/read.cgi/prog/1221751414/60 これはどういうことだ
87 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 12:50:24 ] VB、Java、最近だとruby、このあたりは、プログラマに向いてない 人間の比率が高いから、採用の目安としては使えない、ってことじゃないかな。 昔のコボラみたいに融通が利かない人間を採ってもあとあと困るし。
88 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 17:40:03 ] Mail::Sendmail これの正しい発音は、 メール コロンコロン センドメール で合ってる?
89 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 18:39:13 ] 滅入る 殺殺 千度滅入る
90 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 19:00:16 ] Acmeはちゃんとアクメって読めよ
91 名前:デフォルトの名無しさん [2008/10/04(土) 19:27:09 ] ファイルを読み込むとき、ファイル名を指定する。 log.txt ここで質問。ファイル名が連番になっていても 順に読めるのでしょうか? log001.txt log002.txt open(IN, "log.txt"); print while (<IN>); close(IN); log003.txt
92 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 19:34:12 ] はあ
93 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 20:34:36 ] 日本語でおk
94 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 20:47:45 ] globれ
95 名前:デフォルトの名無しさん [2008/10/04(土) 22:27:56 ] だから open(IN, "log001.txt"); print while (<IN>); close(IN); open(IN, "log002.txt"); print while (<IN>); close(IN); open(IN, "log.003txt"); print while (<IN>); close(IN); って書くと面倒でしょう? ファイル名が連番になってて 順に読めないのかどうか?が知りたいのですよ。
96 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 22:30:44 ] 200個のファイルを読み込みたいのだよ。 200個分のファイルを読むように ソースコードを書くのが 手間がかかりすぎるやん? 2000行ぐらい書くことになるかもしれない。 だから、 ファイル名を連番にして、 200行ぐらいの短くて分かりやすいコードは書けないのでしょうか?
97 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 22:33:04 ] >>91 my $a; $a="log001"; print "$a".".txt\n"; $a++; print "$a".".txt\n"; これちょっと実行して結果見てみ。
98 名前:デフォルトの名無しさん [2008/10/04(土) 22:36:07 ] >>94 なかった
99 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 22:37:58 ] >>97 それ!それです。 マジ助かる。ありがとうございました!!
100 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 22:37:58 ] >>98 何がないんだよ
101 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 22:41:07 ] globでえーやん