Perlコーディング初心者質問スレ Part 51
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/07/27(木) 17:04:23ID:???【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。
1: 自分はこういう事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。
最低でも1と3が無いと誰も答えられないよ。
ソース貼る時は、全角スペースでインデント忘れずに。
良い回答は良い質問から。一緒に勉強しましょう。
過去ログやお勧めサイトは >>2-10
0599nobodyさん
2006/08/18(金) 14:47:31ID:xIt7iz8d今レスしてきました。
こちらにも解決した旨書こうと思ってたところです、遅くなってすいません。
別にマルチするつもりはありませんでした、回され続けたもので・・ほんとスイマセン。。
>>597の質問は解決しました
ありがとうございました
0600582
2006/08/18(金) 16:47:54ID:???0601nobodyさん
2006/08/18(金) 17:14:01ID:???# A.pm
package A;
use CGI;
1;
# B.pm
package B;
use A;
@B::ISA = qw(A); # この1行はなくても動くけど、実際の用途で使ってるので。
my $Q = CGI->new();
1;
こんなことやってもいいのかな?
つまり、B.pm で use CGI; って入れなくても、A で use して require してるから動くし警告も出ないんだけど、
これってお行儀よくないのかな? ってことなんだけど。
0602nobodyさん
2006/08/18(金) 17:35:23ID:???0603nobodyさん
2006/08/18(金) 18:57:28ID:lccc8Mkuアンダースコアならクォートしなくてもいいし、
もしかして、perlに関する名前系には全てアンダースコアがいいの?
でもなんでだろ。なんでハイフンを今まで使ってたんだろ。
何か理由があるはずだけどな。
0604nobodyさん
2006/08/18(金) 19:08:57ID:???意味が分かりません。
0605nobodyさん
2006/08/18(金) 19:39:04ID:???perl -e '@a=qw/a b/; @b = qw/z y/; $h{\@a} = 1; $h{\@b} = 2;for (keys %h){ print "$_ = $h{$_}\n";}'
なんてのも当然の事ながら動く。
0606nobodyさん
2006/08/18(金) 19:46:28ID:???んー、まぁそうなんだけど。
コードの方は例としてどうなのよ。
リファレンスを文字列として解釈して、それをキーにしてるだけだけど。
0607nobodyさん
2006/08/18(金) 21:33:32ID:???演算子を使うという行為そのものが信じられない
0608nobodyさん
2006/08/18(金) 21:42:51ID:???0609nobodyさん
2006/08/18(金) 22:08:52ID:???おお、本当だ。
いままで、オブジェクトのリファレンスをキーにしているものだと信じきっていた。
perl -e '$k="ARRAY(0x8600b08)"; @a=qw/a b/; @b = qw/z y/; $h{\@a} = 1; $h{\@b} = 2; $a[2] = "c";for (keys %h){ print "$_ = $h{$_}\n";}; print "$d=$h{$k}\n"'
($k は一回実行後、適当に直してくれ。)
0610nobodyさん
2006/08/18(金) 23:24:30ID:???use と require は勝手に重複ロードを避けてくれます。ですからその場合は迷わず use しておくべきです。
# 余談: B.pm は標準モジュールとカブるんで例にしてもイマイチかな。
0611nobodyさん
2006/08/18(金) 23:34:13ID:+PBYJBRx「いちいちプログラムを一つ一つ回すのめんどくさいからキー一つで全てのプログラムを研究室内のコンピュータに分散させて回せるようにしとけ。
多分perlでできると思うから。」
と言われました。
当方こういった事に無知です。
何から手をつければいいのか分からず困っています。
どこで聞けばいいのか分からずこちらで聞いてみました。
どうかご教授お願いします
0612nobodyさん
2006/08/18(金) 23:37:10ID:???言いたい事は分からんでもないですが…。
「ファイル名」は気にしないなあ。ハードコードするにしてもクォートするに決まってるんで。
「プログラムのソース内に」は…ごめんなさい、少なくとも僕は使わないと書けないです。信じてもらえないかもしれませんけど。
0614nobodyさん
2006/08/18(金) 23:52:59ID:???0615nobodyさん
2006/08/18(金) 23:57:20ID:???0616nobodyさん
2006/08/18(金) 23:57:53ID:+PBYJBRx�dクスです。感謝いたします。情報系でないのでなんとも…
>>614
聞いても「あーやっぱりw」ってなレベルの大学です。
0618nobodyさん
2006/08/19(土) 00:08:50ID:???0620nobodyさん
2006/08/19(土) 00:51:25ID:???0622620
2006/08/19(土) 08:38:28ID:???0624620
2006/08/19(土) 09:05:27ID:???0625nobodyさん
2006/08/19(土) 09:57:41ID:???0626nobodyさん
2006/08/19(土) 11:30:40ID:???0627nobodyさん
2006/08/19(土) 12:00:41ID:???0628nobodyさん
2006/08/19(土) 15:31:15ID:???0629nobodyさん
2006/08/19(土) 16:29:19ID:GA5MBol05桁目でしょ。
0630nobodyさん
2006/08/19(土) 16:51:08ID:WYPasnq7print "<FONT size=2>表示</FONT>\n";
とすると、「表示」の文字が文字化けします。
print '<FONT size=2>表示</FONT>\n';
とすると文字化けしませんが、「\n」が表示されてしまいます。
とうしたら良いでしょうか?
0631nobodyさん
2006/08/19(土) 16:58:10ID:???0632nobodyさん
2006/08/19(土) 16:58:59ID:???0633nobodyさん
2006/08/20(日) 01:19:05ID:???0634nobodyさん
2006/08/20(日) 01:21:43ID:jxY7weHr/⌒ヽ γ⌒'ヽ
( ^ω^)i ミ(二i
( ∪ ∪ヽ、,,_| |ノ
と_)_) r-.! !-、
`'----'
0635nobodyさん
2006/08/20(日) 02:30:01ID:???0637620
2006/08/20(日) 08:54:38ID:???頭の悪いやつにきたいした俺gまちがいただ。
0638nobodyさん
2006/08/20(日) 09:02:20ID:???0639nobodyさん
2006/08/20(日) 09:52:07ID:???将来の拡張なども考えて、オブジェクト指向で書くのが良いと思う。
完全オレオレモジュールなら、どちらでもという気はする。
http://www.kt.rim.or.jp/~kbk/perl5.005/perlmodlib.html#Guidelines_for_Module_Creation
0640nobodyさん
2006/08/20(日) 10:09:15ID:???0641nobodyさん
2006/08/20(日) 11:48:14ID:???考えているキミ自信がオブジェクト指向を苦手としているのだ。
0642nobodyさん
2006/08/20(日) 11:48:36ID:???0643nobodyさん
2006/08/20(日) 11:58:45ID:???Movable Typeがクラスを一切使わず、全部関数なら2倍弱速いとか。
0644nobodyさん
2006/08/20(日) 12:11:58ID:???0645nobodyさん
2006/08/20(日) 16:12:29ID:???0646nobodyさん
2006/08/20(日) 16:33:59ID:???0647nobodyさん
2006/08/20(日) 17:00:10ID:???Perl は風呂敷みたいなもんだ。
風呂敷にジュラルミンケースの長所を求めて何か嬉しいことがあるかな。
それでも君はいつでも OO::Excellent を書いて CPAN に登録できるし、きっと誰もそれを止めない。
0648nobodyさん
2006/08/20(日) 18:00:00ID:???0649nobodyさん
2006/08/20(日) 18:29:15ID:???…が、それでもやっぱりPerlの変態度は変わらない
どころか強化されるので何とも言えない。
変数の頭に付ける記号、増えるんだよなぁ。~$?FOO とか +@*BAR とか。
0651nobodyさん
2006/08/20(日) 22:24:07ID:???別にそういう記号が増えるだけで、
基本は変わらない。
http://dev.perl.org/perl6/doc/design/exe/E02.html
0652nobodyさん
2006/08/21(月) 00:40:05ID:1WWjUDHaこれを「あいうえお...」という感じに、先頭5文字だけ表示させるようにしたいのですが、可能でしょうか?
個人的には「length」を使うのかなと睨んでいるのですが・・・。
簡単で構わないのでアドバイスお願い致します・・・ orz
0653nobodyさん
2006/08/21(月) 00:49:09ID:???まずは思ったままをやってみて、結果を見ながら「何故こうなる?」という部分を考え、
それでもやっぱりわからなかったら聞きにおいで。
substrでやる → 途中で文字が切れちゃいました! →
0655nobodyさん
2006/08/21(月) 01:16:18ID:???0656nobodyさん
2006/08/21(月) 01:55:18ID:???0657nobodyさん
2006/08/21(月) 03:12:24ID:???じゃあ、いったい何が出来るのか問いたい
0659nobodyさん
2006/08/21(月) 04:21:44ID:???Perlにはエラーの制御演算子みたいなものはありますか(PHPでいうところの『@』)?
演算子などでなくても、Perlのエラー文が表示されなくなれば良いんですが……。
0660nobodyさん
2006/08/21(月) 06:37:43ID:???同じ物はないよ。
PHPの@を(notice避けの)手抜きに使ってるのか、
(スクリプトの終了を回避して)後始末をするために使ってるのかにもよる。
・コード修正
・no warnings/strict
・eval
あたりかな。
0661nobodyさん
2006/08/21(月) 09:07:48ID:???use encoding "shiftjis";
eucなら
use encoding "euc-jp";
のおまじないをしておくとか。。。
0662nobodyさん
2006/08/21(月) 13:28:33ID:???どこへの返答かいまいちわからんけど、encoding プラグマは「おまじない」としてはちょっと勧めづらい。
0663nobodyさん
2006/08/21(月) 13:40:19ID:???> 演算子などでなくても、Perlのエラー文が表示されなくなれば良いんですが……。
これを読む限りでは抑制したい「エラー文」は主に警告の類なんでしょう。
出力を抑えるのではなく STDERR をファイルにリダイレクトする手もあります。
そうしておくことで、後からどのようなエラーが生じていたのか確認できます。
もちろん use strict 及び use warnings 下でエラー・警告の出ないように書く、というのが本筋ですけれど。
その上で本当にそれが必要なら no strict 〜 や no warnings 〜 などで極力限定的に制限を緩める方法があります。
0664nobodyさん
2006/08/21(月) 14:38:15ID:???"no warnings"がこちらの望みどおりだったので使わせていただきました。
ありがとうございました〜!
0665nobodyさん
2006/08/21(月) 17:57:03ID:GgkIkg39http://oraclesqlpuzzle.hp.infoseek.co.jp/regex/regex-2-1.html
0666nobodyさん
2006/08/21(月) 22:38:34ID:???調べたところ、<img>タグで読みだして、CGIの方からダミーの画像を排出する…みたいな方法があるようなのですが、細かくは書かれておらず、どういうことかよくわかりません…
情報が少なく申し訳ありませんが、よろしくお願いしますm(_ _)m
ちなみに携帯用なのでJavaやJavaScript系は不可で、SSIも使えませんm(_ _)mm(_ _)m
0667nobodyさん
2006/08/21(月) 22:49:08ID:???それが無理なら、data.txt じゃなくて表示用HTMLファイルを直接吐くようにするとか。
0668nobodyさん
2006/08/21(月) 23:30:54ID:???http://zerosp.com/mt/archives/xml-sax-error.php
ほぼこのページの手順どおりに作業したのですが、どうしても最後の
ppm install XML-LibXML
を打ち込むと、長いHTMLソース(activestate.comのページ?)が現れて終了してしまいます。
どうすればインストールできるでしょうか。
0669668
2006/08/21(月) 23:34:17ID:lSGtoXSQ何故かこのページのようです。
http://aspn.activestate.com/ASPN/Modules/Perl?query_start=1
0670666
2006/08/21(月) 23:44:30ID:???ありがとうございますm(_ _)m
つまり、トップ自体をcgiにするということですよね…?
負荷がかかるんじゃないかなぁなんて考えているのですが…m(_ _)m
2つ目は、どういうことかよくわかりませんでした…m(_ _)m
0672nobodyさん
2006/08/21(月) 23:48:04ID:???〜ごにょごにょっと処理〜
# 以下ダミー画像の出力
open(JPG, $jpegimage);
binmode(STDOUT);
read(JPG, $jpg, (-s JPG));
close(JPG);
print "content-type: image/jpeg\n\n";
print $jpg;
0673nobodyさん
2006/08/21(月) 23:53:33ID:???負荷なんてしらんがな(´・ω・) 制限があるなら最初から書こうよ...
システム管理者と相談汁!
後者の方法はつまり、data.txt を作成するスクリプトが、同時に
そのトップページのHTMLファイルを作り直す、もしくはデータを表示している部分を書き換える。
こちらの方法だと、表示されるのは静的なHTMLファイルだから、負荷は変わらないはず。
0674nobodyさん
2006/08/22(火) 00:05:01ID:???0675nobodyさん
2006/08/22(火) 01:05:29ID:???0676668
2006/08/22(火) 01:09:43ID:???すいません、そのページも参考にしていたのですが分かりませんでした。
現在、CPANからのインストールを試みているのですが、
install XML::LibXMLと打ち込むと
===============================================
enable native perl UTF8
looking for -lxml2... no
looking for -llibxml2... no
libxml2 not found
Try setting LIBS and INC values on the command line
Or get libxml2 from
http://xmlsoft.org/
==============================================
とのメッセージが出て止まってしまいます。
libXML2ライブラリがない事が原因のようなので、
http://www.zlatkovic.com/libxml.en.html#binaries
ここからバイナリを落としてパスの通った場所においてみたのですが効果がありません。
どうすればいいでしょうか。
0679nobodyさん
2006/08/22(火) 16:06:29ID:???0680nobodyさん
2006/08/22(火) 16:31:48ID:???0681nobodyさん
2006/08/22(火) 16:47:03ID:???FINとかよりはいくらかマシかもしれん。
0682nobodyさん
2006/08/22(火) 17:06:57ID:???0683nobodyさん
2006/08/22(火) 17:52:11ID:???0684nobodyさん
2006/08/22(火) 18:06:15ID:???Perl、PHP、Ruby、Python、C、C++、C#、アセンブリ、Java etc
0685nobodyさん
2006/08/22(火) 20:06:12ID:???全て大文字
(丁寧な人なら)最後にFHを付ける
といった慣習がある程度じゃないの?
それとopenにエラー処理を含めなかったのは面倒だったから。
0686nobodyさん
2006/08/22(火) 21:23:28ID:???0687nobodyさん
2006/08/23(水) 03:47:16ID:XWuzfmww0688nobodyさん
2006/08/23(水) 04:09:51ID:wU1utu5f本屋で小飼の赤い本探せ
0689nobodyさん
2006/08/23(水) 09:14:41ID:???今ここにあるリストから抜き出すだけの使い捨てなら、perlを使うまでもなく
ほとんどの場合grepコマンドで十分。
長く使う一般的な奴を作るのならURIモジュール使うのが楽かな。
0690nobodyさん
2006/08/23(水) 10:30:39ID:???0691nobodyさん
2006/08/23(水) 12:24:46ID:???誰かが質問 → 自分では答えない
誰かが回答 → 書き方が汚い
模範解答を求める → 本屋で探せ
( ´,_ゝ`)プッ
0692nobodyさん
2006/08/23(水) 13:55:26ID:???「たくさんのURLの中から」→テキストファイルにデータがあるんですか? 形式は? 1行1URL?
htmlのソース内から抜き出す? …というようなことを具体的に書いてください。
「ファイルに書き出したい」
これも書き出したい形式を示してくれないと、どう書き出したいかわかりません。
入出力とも1行1URLなら、perlを使わずとも
grep DOMAMIN_NAME input.txt > output.txt
ですみますよ。
0694nobodyさん
2006/08/23(水) 16:51:38ID:aL45Sk1a0695nobodyさん
2006/08/23(水) 17:18:15ID:???0696nobodyさん
2006/08/23(水) 17:29:35ID:aL45Sk1a0697nobodyさん
2006/08/23(水) 17:34:20ID:???俺優しすぎる
■ このスレッドは過去ログ倉庫に格納されています