1 名前:nobodyさん mailto:sage [2011/09/09(金) 18:11:49.71 ID:???] Perlのコーディングで困ってる人のスレです。 【投稿する際の注意】 質問するときは内容をよく吟味してから投稿してください。 「コマンドの意味がわかんない」とかはマニュアル見ましょう。 回答者さんは何でも屋じゃありません。 1: 自分はこういう事がしたい。 2: それでこんな風にやってみたが・・・ 3: こんなエラーが出て上手く行かなかった。 最低でも1と3が無いと誰も答えられないよ。 良い回答は良い質問から。一緒に勉強しましょう。 お勧めサイトは >>2 以降 前スレ hibari.2ch.net/test/read.cgi/php/1295170172/
628 名前:nobodyさん mailto:sage [2012/04/05(木) 13:04:38.74 ID:???] www5.puny.jp/uploader/download/1333598575.pl pass:perl 自分はこう書いた
629 名前:nobodyさん mailto:sage [2012/04/05(木) 15:56:41.39 ID:???] >>628 それだったら $data = [array_ref, hash_ref, ...] の方が良くないですか? my $data = readdata_mod(); my $headers = shift @$data; for my $hash (@$data){ $hash->{NAME} .= '【逮捕】'; print "$hash->{$_}\n" for @$headers; } sub readdata_mod{ my $headers = <DATA>; chomp $headers; $headers = [split(/<>/, $headers)]; my $data = [$headers]; while(my $line = <DATA>){ chomp $line; my %tempdata = (); @tempdata{@$headers} = split(/<>/, $line); push @{$data}, \%tempdata; } return $data; } それより気になるのは >>618 のソースだと @id,@name,@pass... と配列があるんですよね。 これをどう処理してるか謎なんで レコードをなめるだけでいいのか悩むところ。
630 名前:nobodyさん mailto:sage [2012/04/05(木) 16:34:07.79 ID:???] そこは好みかな 自分はデータとヘッダは分離させたいので、ああやって書きました。
631 名前:nobodyさん [2012/04/06(金) 11:04:06.62 ID:AWfq6sbZ] すいません。perlをコマンドラインで使うやり方について質問させて下さい。 例えば数字の入ったファイル名だけ全部lsしたい時って どのように書けばいいのでしょうか。 こんな風に書いてみたんですが何も出力されません… ls | perl -e "print /[0-9]/ "
632 名前:nobodyさん [2012/04/06(金) 11:29:12.54 ID:AWfq6sbZ] ↑ find . -maxdepth 1 -name '*.gif' | perl -ne 'print if /\/*[0-9]{2}\.gif$/;' こんな感じで出来ました
633 名前:nobodyさん mailto:sage [2012/04/07(土) 02:00:48.78 ID:???] >>632 find . -maxdepth 1 -name "*[0-9][0-9].gif"
634 名前:nobodyさん mailto:sage [2012/04/07(土) 02:02:53.93 ID:???] >>632 > if /\/*[0-9]{2}\.gif$/; これはワイルドカードと正規表現をごっちゃにしているな。別物だからちゃんと区別するように。
635 名前:nobodyさん mailto:sage [2012/04/07(土) 04:29:33.70 ID:???] それって find . -maxdepth 1 -name "[0-9][0-9].gif" と等価なだけなんじゃないのか
636 名前:nobodyさん mailto:sage [2012/04/07(土) 09:58:11.44 ID:???] 以下のコードで,https://member.livedoor.com/login/ が 取得できません. use WWW::Mechanize; my $mech = new WWW::Mechanize( autocheck => 1 ); my $url="https://member.livedoor.com/login/"; #my $url="https://www.nodeworks.com"; $mech->get($url); print $mech->content; $url を https://www.nodeworks.com とした場合は,取得できます. https://member.livedoor.com/login/ が取得できない原因として, 何を疑ったらいいでしょうか??
637 名前:nobodyさん mailto:sage [2012/04/07(土) 11:49:34.04 ID:???] USER AGENT がちゃんと設定されてないだけでしょ
638 名前:nobodyさん mailto:sage [2012/04/07(土) 12:32:23.46 ID:???] HTTP::Cookies
639 名前:nobodyさん mailto:sage [2012/04/07(土) 19:43:25.79 ID:???] マジレスするとSSLを使用しているページにはCrypt-SSLeayを入れないと繋げない事もある
640 名前:nobodyさん mailto:sage [2012/04/07(土) 21:04:03.67 ID:???] あくてぃぶ とか すとろべりー ならインストール後には可能やよ Linux 標準の ぱーる は おーぷんえすえすえる 入れないとだめですわ シャキーン
641 名前:nobodyさん mailto:sage [2012/04/08(日) 11:30:20.98 ID:???] $ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 0; を追加すると繋げることもある
642 名前:636 mailto:sage [2012/04/08(日) 21:41:15.55 ID:???] >>641 https:://gitub.com は, $ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 0; でいけた. しかし,https://member.livedoor.com/login/ は,それでもいけない. https://member.livedoor.com/login/ は,特殊なんかな.
643 名前:nobodyさん mailto:sage [2012/04/14(土) 20:30:27.28 ID:???] 「かんたんプログラミングCGI/Perl」ってこのスレ的にはどうでしょう? ttp://d.hatena.ne.jp/perlcodesample/20120414/1334359182 この人のブログ、>>2 のテンプレに載ってないから心配になって聞いてみました。
644 名前:nobodyさん mailto:sage [2012/04/14(土) 20:38:40.49 ID:???] ソースコードに誤字山積ってだけで論外だろ。 そのブログ自体は数年前から、2ch に宣伝気味に貼られるけど あんま相手にされてない
645 名前:nobodyさん mailto:sage [2012/04/14(土) 20:45:44.78 ID:???] >>644 の言う通り。その本もブログも絶対に参考にしちゃだめ。 現代的()なPerlなんて覚えてもろくなことにならないから 5.6でも動くようなコーディングを心がけるべし。 あとこいつがプッシュしてるMojoliciousも、ちょっと有名なCatalystとかも やめといた方がいい。 フレームワークなんてすぐ腐る。 CGIが一番。
646 名前:nobodyさん mailto:sage [2012/04/14(土) 21:04:47.55 ID:???] フレームワークは小さなやりたいことに対して規模がデカすぎ
647 名前:nobodyさん mailto:sage [2012/04/14(土) 21:09:27.25 ID:???] 10年以内に発売されたような高性能PCとかじゃないとすぐメモリを食いつぶされるからな>フレームワーク。 フレームワークは金持ちのお坊ちゃまの娯楽、甘えでしかない。 技術を自分のモノにしたければCGIで泥臭く書け。
648 名前:nobodyさん mailto:sage [2012/04/14(土) 21:45:18.04 ID:???] フレームワークごときでメモリが食いつぶされるような 貧弱なマシンで使ってるの? それ選択が間違いなだけだよ。 ユーザー数、数万、数十万のウェブサービスを作っていれば、 必然と複数台構成のマシンになる。 メモリの話だと1台10GBオーバーとか当たり前。 そういう世界の人に対して高性能PCとか、メモリ容量とか 釈迦に説法ってやつだと思わないか?
649 名前:nobodyさん mailto:sage [2012/04/15(日) 11:24:37.83 ID:???] はいはい、Mojoと喪男でがんばってね!
650 名前:nobodyさん mailto:sage [2012/04/15(日) 11:27:08.04 ID:???] とにかくCGIで書くことを心がければ小規模から大規模までどんなアプリだって書けるようになる。 フレームワークは覚せい剤。手を出したら終わり。
651 名前:nobodyさん mailto:sage [2012/04/15(日) 11:52:49.40 ID:???] まあおれの場合、CGI.pmすら嫌なんでHTML直に書いてるけどね その方が書きやすいしメンテもしやすいと思ってる 初期の頃からそうしてるけどぶれていないね
652 名前:nobodyさん mailto:sage [2012/04/15(日) 11:58:08.00 ID:???] いいねぇ。素晴らしい。 楽はしちゃだめだよね。
653 名前:nobodyさん mailto:sage [2012/04/15(日) 13:46:50.99 ID:???] モジュール作成者の世界観とおれが直面している問題とは無関係だから。 モジュールのメソッドの整理具合が、個別の問題にマッチしていないのは 当然あり得ること。 個別の問題を解決するのを車輪の再発明だとは思わない(キリッ
654 名前:nobodyさん mailto:sage [2012/04/15(日) 14:12:09.38 ID:???] >>653 そういう場合はラッパーを作ればいい。
655 名前:nobodyさん mailto:sage [2012/04/15(日) 14:12:40.71 ID:???] プロとアマチュアの違いを見た
656 名前:nobodyさん mailto:sage [2012/04/15(日) 15:17:25.01 ID:???] なんだかんだで、ちょっと機能を足しただけのラップモジュールを作る機会って少なくないね。 自分が今のやってるロジェクトだとHTML::Template系使ってるけど、 共通パラメータやらフィルタやら、細かい部分が多くてなあ。
657 名前:nobodyさん mailto:sage [2012/04/16(月) 00:50:12.93 ID:???] ラッパーを作るってことは元のものより粗いものしか作れないでしょ
658 名前:nobodyさん mailto:sage [2012/04/16(月) 02:30:46.51 ID:???] >>643 ブログの中で自分の名前間違えてたりするレベルなので、本のほうも 推して知るべし、です。
659 名前:nobodyさん mailto:sage [2012/04/16(月) 09:27:44.08 ID:???] もちろん、こいつの雑誌連載も糞。 上手になりたかったらもっと2chを活用しろ。 オライリーと2chだけで十分。
660 名前:nobodyさん mailto:sage [2012/04/17(火) 05:05:18.23 ID:???] ある入門書にこう書いてありました 「関数とは、特定のまとまった処理を実行する機能のことです。 ・・・一般的に、プログラムの中で呼び出される際にデータを受け取って 特定の処理を行い、結果を返す働きをします」 演算子もこの説明における関数と働きは似ているように見えます 例えば加算演算子が 2 つの数を受け取って和の値を返すというように 関数と演算子に大きな違いがあるのでしょうか? なんで「関数」と「演算子」とわざわざ呼び分けているわけですか?
661 名前:nobodyさん mailto:sage [2012/04/17(火) 12:31:41.99 ID:???] その入門書の信頼性を疑ってみる。
662 名前:nobodyさん mailto:sage [2012/04/17(火) 12:31:59.01 ID:???] >>660 違いは無い。引数の取り方が違うだけ。
663 名前:nobodyさん mailto:sage [2012/04/17(火) 12:35:26.61 ID:???] 入門書なんか捨てろ Googleも使うな 2chで全て解決