Perlのこと何でも聞いてきてよ
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
02/02/04 00:32ID:???| 役に立つとは限らないけどね☆
∧ ∧ |/\_________
(,,゚Д゚)____.
(つ/~ ※ ※ \
/※ ※ ※ ※ \
~~~~~~~~~~~~~~~~~~~
0755nobodyさん
2005/07/08(金) 23:43:38ID:???「糞プログラム」「クソコード」「クソ」があるのですね。
人によってはそれを「スパゲティー」と呼んだりしてますね。
0756nobodyさん
2005/07/08(金) 23:44:46ID:???0757nobodyさん
2005/07/09(土) 00:16:16ID:???明らかに糞なもんだけ指摘しとけばそれっぽく振舞えるからそれでいいの。
0758nobodyさん
2005/07/09(土) 00:17:28ID:???0759nobodyさん
2005/07/09(土) 18:06:48ID:???少なくともJAPUたん(本物)が書いたモノはクソではないはず(バグはあっても・・・)
過去ログとか漁りまくればいっぱい見つかるよん(多分)
確か、公開されている他人のスクリプトを検証してセキュリティホールを晒したりもしてた(何年も前の話だけどね)
0760nobodyさん
2005/07/10(日) 09:26:32ID:+tk22meLなにが原因なのでしょう
元画像:ttp://www.946yo.net/test/image.jpg
変換画像:ttp://www.946yo.net/test/image2.jpg
ソース
#!/usr/local/bin/perl
print "Content-type:text/html\n\n";
use Image::Magick;
$img_file = "image.jpg";
$width = "200";
$i = Image::Magick->new;
$i->Read($img_file);
$i->[x]->Scale($width);
$i->Write("mini_image.jpg");
0761nobodyさん
2005/07/10(日) 20:33:51ID:BYWPJpu1exitでも可能ですか?
exitの手前にundefするのは無駄でしょうか?
0762nobodyさん
2005/07/10(日) 21:24:56ID:NbF3Xqh9プログラムを終了しても確保したメモリを残したままにすることはできますか?
0763nobodyさん
2005/07/10(日) 21:26:53ID:BYWPJpu1俺が悩みすぎなだけだったか・・・
0764nobodyさん
2005/07/11(月) 13:12:24ID:???コード晒すのは結構だが、こういうのは名前だけでも CPAN モジュールを
挙げておいた方がイイ気がする。
use I18N::LangTags ();
use I18N::LangTags::Detect ();
my @lang = I18N::LangTags::implicate_supers(I18N::LangTags::Detect::detect());
てか、車輪の再発明って俺嫌いなんだよね。継続的にメンテできるならともかく。
0765nobodyさん
2005/07/11(月) 13:23:09ID:/9KclxVJおれんとこは普通に変換できるよ
0766nobodyさん
2005/07/11(月) 13:23:12ID:???顔と名前…プライバシーも糞もあったもんじゃないな(;´Д`)
手元で変換してみたけど問題は無かったよ。Web サーバ側でプロセスの
メモリ使用量を制限されてるんじゃないかと推測。
どっちにしろ、それだけじゃ情報量が不足してて的確な答えは出せません。
0767nobodyさん
2005/07/11(月) 14:36:05ID:DqJcH8xhどうもありがとう。
さっそく、I18N::LangTags ンストールしてきました。
>>754
中の人がどんなことをしてるかの勉強になりました。
0768nobodyさん
2005/07/11(月) 16:37:32ID:QNaKh9PeフリーのCGIを見ていると、このような箇所があったのですが、
これって何なんでしょうか?
0770nobodyさん
2005/07/12(火) 11:04:51ID:CdQFjjCKPerl6では、なんか新しいCGI用に便利なモジュールとかでるんですか?
0771nobodyさん
2005/07/12(火) 11:09:51ID:???0772nobodyさん
2005/07/12(火) 13:20:50ID:CdQFjjCK0773nobodyさん
2005/07/12(火) 13:42:38ID:???0774nobodyさん
2005/07/12(火) 18:18:30ID:???俺の場合HTML::Template使うことが多いんでCGI::Lite.pm
簡単なHTML吐かせるだけならCGI.pm使うことも
Perl6はシラネ
0775nobodyさん
2005/07/12(火) 19:08:44ID:NlgVBMQc<TR><TD></TD></TR>
<TR><TD></TD></TR>
<TR><TD></TD></TR>
<TR><TD></TD></TR>
<TR><TD></TD></TR>
<TR><TD></TD></TR>
<TR><TD></TD></TR>};
s{<TR>.*?</TR>$}{}s;
print $_;
----------
で、全部消えちゃう
s{<TR>.*?</TR>}{}s;
だと、ちゃんと最短マッチで一行だけ消える
$で行末指定すると、最短マッチにならないのは仕様なの?
0776nobodyさん
2005/07/12(火) 19:37:24ID:???文字列に含まれる改行は "^" にも "$" にもマッチしない。
なので、{<TR>.*?</TR>$} は「文字列の」終端までマッチしてしまう。
0777nobodyさん
2005/07/12(火) 19:41:42ID:???$_ = qq{<TR><TD></TD></TR><TR><TD>〜略〜</TD></TR><TR><TD></TD></TR><TR><TD></TD></TR>};
s{<TR>.*?</TR>$}{}s;
でやってみたけどやっぱり空欄になるね。
0778nobodyさん
2005/07/12(火) 19:48:42ID:???行頭から$まで消える。
0779775
2005/07/12(火) 20:09:17ID:NlgVBMQc0780nobodyさん
2005/07/12(火) 20:28:50ID:???s{<TR>([^<TD]*)?<TD([^>]*)?>([^TR>]*)?</TD></TR>$}{}s;
0781nobodyさん
2005/07/12(火) 20:30:11ID:???s{<TR>([^<TD]*)?<TD([^>]*)?>([^TD>]*)?</TD></TR>$}{}s;
効率良いやり方俺も知りたいです。
0782nobodyさん
2005/07/12(火) 20:36:04ID:???<TR><TD></TD></TR>
<TR><TD></TD></TR>
<TR><TD></TD></TR>
<TR><TD></TD></TR>
<TR><TD></TD></TR>
<TR><TD></TD></TR>
<TR><TD></TD></TR>};
print "[$_]\n";
@a = split(/<tr/i,$_);
pop(@a);
$_ = join('<tr',@a);
print "[$_]\n";
0783nobodyさん
2005/07/12(火) 20:39:15ID:???0784nobodyさん
2005/07/13(水) 02:25:13ID:???<TR><TD></TD></TR>
<TR><TD></TD></TR>
<TR><TD></TD></TR>
<TR><TD></TD></TR>
<TR><TD></TD></TR>
<TR><TD></TD></TR>
<TR><TD></TD></TR>};
$_ = reverse $_;
s{>RT/<.*?>RT<}{}s;
$_ = reverse $_;
print;
0785nobodyさん
2005/07/13(水) 02:36:03ID:???$_ = 12345;
$_ = reverse;
s{(\d{3}\B)}{$1,}g;
$_ = reverse;
print;
0786nobodyさん
2005/07/13(水) 09:13:35ID:???0787nobodyさん
2005/07/13(水) 11:39:05ID:???0789nobodyさん
2005/07/14(木) 00:09:04ID:A+ziPPVI俺だけかな。
0790nobodyさん
2005/07/14(木) 06:49:37ID:???俺は出来る
ppm>version
PPM - Programmer's Package Manager version 3.1
0791nobodyさん
2005/07/14(木) 13:00:02ID:opBAVVHm0792nobodyさん
2005/07/14(木) 20:54:08ID:???Status: 205
EOF
0795nobodyさん
2005/07/15(金) 21:24:09ID:???俺はsleepさせてpsで挙動を見たことがあるけど
そもそもメモリを気にするようなデカいコンポーネントをCGIで実行するのはどうかと
mod_perlかFastCGIで常駐させたほうがいいと思うよ
0796nobodyさん
2005/07/15(金) 21:34:05ID:???もちろんゼロではないだろうが、無視できるレベルでは?
むしろ-wそのものよりも、
-wによる出力内容をファイル等に落とすことのほうがオーバーヘッドが大きい罠
0797nobodyさん
2005/07/16(土) 15:49:57ID:c8mV9oxP0798nobodyさん
2005/07/16(土) 16:00:47ID:???0799nobodyさん
2005/07/16(土) 16:18:14ID:???処理1;
if (条件) { # 条件にヒットしたら
next; # 次の処理に
}
処理2;
}
0800nobodyさん
2005/07/16(土) 22:44:10ID:???0801791
2005/07/24(日) 22:34:03ID:thQc31XVこれって何が原因なんでしょうか?
0803nobodyさん
2005/07/27(水) 04:26:01ID:4TEPd56Rperlでモジュラス10ウエイト3を実装している例などありましたら
紹介してもらえないでしょうか?
コーディングで煮詰まって・・・orz
0804nobodyさん
2005/07/27(水) 05:54:58ID:???なんだそれ?と思ってググッテみたら
足し算、掛け算、引き算、割り算で算出できるものではあ〜りませんか
なんで煮詰まってんの?速度とか?
煮詰まってるポイントを書いたほうがよさげよ
0805nobodyさん
2005/07/30(土) 03:01:52ID:d2itdKNjもうダメポ・・・。
0806nobodyさん
2005/07/30(土) 03:20:21ID:d2itdKNjこのサイトで、モジュラス10ウエイト3のPerlを書いた人を発見!
ttp://blog.livedoor.jp/nipotan/archives/85800.html
こんなコードでした。
sub check_digit {
my $num = join '', reverse split //, shift;
return unless $num =~ /^\d+$/;
my $sum = 0;
$sum += substr($num, $_, 1) * ($_ % 2 ? 1 : 3) for (0 .. length($num) - 1);
$sum %= 10;
return $sum ? 10 - $sum : 0;
}
要件満たしてるんですかね?
あー、ダメだ。。。
自分で読めないほどに詰まるなんて。。。
はぁ
0807nobodyさん
2005/07/30(土) 09:51:24ID:???> 要件満たしてるんですかね?
君から要件を説明されてないのに俺らが分かると思うか?
エスパー募集なら他に行けよ。
どういう問題があって、何が分からないのか。人に質問する時の基本的な
こともできないのか?
Perl とか以前に、日本語とか人との会話を勉強するべきだと思うが。
0808nobodyさん
2005/07/30(土) 12:04:24ID:d2itdKNjんで、その計算方法を次に示します。
(1)データ キャラクタの中で最も右にあるキャラクタを奇数として、
すべてのデータ キャラクタを奇数位置、偶数位置に分類する。
(2)奇数位置にあるキャラクタを合計し、その結果に3を掛ける。
(3)偶数位置にあるキャラクタを合計する。
(4)(2)の結果と(3)の結果を合計する。
(5)10から(4)の結果の一の位を引いた数字が算出されたチェックデジットです。
((4)の結果の一の位が0のとき、チェックデジットは0。)
実際に計算して見ると
2345の場合、
奇数は5,3なので積は8 コレに3かけるので a=24
偶数は4,2なので積は6 b=6
c=a+bなので30
10からCの1の位を引き算 10-0=10 この結果の1の位がチェックデジットになるのです。
んで、さっきのコードを実装して試すと 結果が6になっちゃうんですわ。。。
0809nobodyさん
2005/07/30(土) 13:09:36ID:d2itdKNjごめんなさい。
0810nobodyさん
2005/07/30(土) 13:14:39ID:gTYaFPro0812HEAD
2005/07/30(土) 17:45:32ID:???エキサイトフレンズ[http://friends.excite.co.jp/]みたいに、
WEB上でメールを送受信できたり、他のユーザーを検索したりする、
メンバーディレクトリ的なスクリプトってないですか?対応は、C,Perlです。
スレ・カテ違いでしたら、誘導お願いします。
0813nobodyさん
2005/07/30(土) 21:04:35ID:???http://pc8.2ch.net/test/read.cgi/hp/1116923112
0814nobodyさん
2005/07/31(日) 20:22:34ID:tE006mzP愛してる
0815nobodyさん
2005/08/06(土) 00:39:43ID:???#PERL
/usr/bin/wget -r -l 1 -N -nH http://hoge.com/hoge.html > /dev/null 2>&1
これでcron使ってhttp://hoge.com/hoge.htmlから1層目までのファイルをダウンロードしようとしたんですけど
ambiguous redirectとでますた。
どこがおかしいんでしょうか?
0816JAPU ◆E.pgZNAsY2
2005/08/06(土) 14:18:15ID:???ambiguous redirect って出ているので,サーバからの応答がおかしいのでは?
wget --save-headers URL
で,エラー起きたURL試してみればよいかもしれない。
0817nobodyさん
2005/08/06(土) 18:22:31ID:???ありがとうございます。
やってみましたがまたambiguous redirectと出ました。
これ扱う質問はどこのスレですればいいんでしょうか?
0818nobodyさん
2005/08/07(日) 17:38:43ID:oN+VAQu9これなんですが携帯からだと書き込めません。
書き込み画面までいけないです。
PCからは普通に書き込めます。
multipart/form-dataが関係あると思うのですが
因みにアップロード機能は使いません。
どこをどう書き換えればいいでしょうか?
0819nobodyさん
2005/08/08(月) 05:57:54ID:???$str =~ s/\%//g;
こうしたけどだめだった
0820nobodyさん
2005/08/08(月) 07:13:03ID:???0821nobodyさん
2005/08/08(月) 16:29:48ID:smXZQKV90823perlばっかり1年やってるのに初めて。。。
2005/08/08(月) 17:12:39ID:???という普通の処理で下のようなエラーがでます。
Modification of a read-only value attempted at ファイル名 line 149.
なぜか while を foreach に変えると動きます。。。
普通 open ⇒ while ⇒ close ですよね?(;´ω`)
なぜこのようなことが起きるのでしょうか?
よろしくお願いします。
0824823
2005/08/08(月) 17:20:43ID:???このパターン初めてだ。。。
0825nobodyさん
2005/08/10(水) 00:02:27ID:PTE7pUU7何方か知ってる方居たら教えていただけませんか?
0826nobodyさん
2005/08/10(水) 00:36:15ID:???http://downloads.activestate.com/ActivePerl/Windows/5.8/
0827nobodyさん
2005/08/10(水) 00:43:51ID:PTE7pUU7本当に感謝の気持でいっぱいです。ありがとうございましたm(_ _)m
0828nobodyさん
2005/08/13(土) 01:58:29ID:???音引きで置き換えなどができない問題で、
\Qほにゃらら\Eで置き換えた場合、文字化けが発生してしまうのですが、
これはJISコードだからでしょうか。
いまからでも、扱う文字を全部EUCにしたほうがいいですか?
0829nobodyさん
2005/08/14(日) 18:50:35ID:???バークレーについてはなかなかWEB上に見つけられなくて・・・。
会員だけがデータ登録可能で、一般ユーザは検索・抽出だけしたいのですが・・
バークレイはテーブルという概念はないのでしょうか?
よろしくお願いいたします。
0831nobodyさん
2005/08/16(火) 16:07:03ID:22f9XKc9UAでPCからのアクセスか携帯からのアクセスか判定する
foreachであらかじめリストに入れておいた文字列を開いてUAとマッチするとフラグが立つ
もしフラグが立っているならば今度はforeachであらかじめリストに入れておいた文字列2を開いてホストとマッチするか調べる
もしもホストが携帯固有のもので、前述したリストとマッチしたらページを表示する
それいがいはelseで別ページを開く(要はUAを携帯に偽装したアクセスを弾く)
サブルーチンは使わないで HTML部分はヒアドキュメントで記述しているんですが
携帯からアクセスすると、elseで用意したページの内容まで表示されてしまいます
しかも三回ぐらい(ページのバナーごと三回ぐらい表示される)
foreachの使い方に問題があるとおもうのですが、、、誰かご指南してください頼む
0832nobodyさん
2005/08/16(火) 17:22:46ID:Y3KaJd+a書かずに分かるわけないだろ。
エスパーじゃあるまいし。
0833nobodyさん
2005/08/16(火) 17:24:16ID:???リストとマッチしたらページを表示する
↓
リストとマッチしたらフラグ2を立ててlast
フラグ2があればページ表示
なければ別ページ
0834831
2005/08/16(火) 17:34:41ID:22f9XKc9$flag = 0;
$ua = $ENV{'HTTP_USER_AGENT'};
$ip = $ENV{'REMOTE_ADDR'};
$ipp = pack('c4',split(/\./,$ip));
$host = gethostbyaddr($ipp,2);
@check=("携帯のUA");
@check2=("携帯のホスト");
foreach $check(@check){
if ($ua =~ m/$check/){
$flag = 1;
}
}
if ($flag eq 1){
foreach $check2(@check2){
if ($host =~ m/$check2/){
print <<EOM;
<html>携帯専用ページ</html>
EOM
}else{
print <<EOM;
<html>拒否ページ</html>
EOM
}
}
}
}
0835831
2005/08/16(火) 17:37:08ID:22f9XKc9ソースは上記の通りです
どのようにlastを使ったらよろしいでしょうか?
0836832
2005/08/16(火) 18:01:44ID:???if ($flag) {
foreach $check2 (@check2) {
if ($host =~ m/$check2/) {
$flag2 = 1;
last;
}
}
}
if ($flag2) {
print <<EOM;
<html>携帯専用ページ</html>
EOM
} else {
print <<EOM;
<html>拒否ページ</html>
EOM
}
0837nobodyさん
2005/08/16(火) 18:18:42ID:???最終的にホストではじいているのに、なんでUAをチェックする必要があるの?
0838831
2005/08/16(火) 18:23:15ID:22f9XKc9ありがとうございます。
携帯からはうまくいきました。
しかし、PCから閲覧すると、拒否ページが表示され、
その下にPCページが表示されてしまいます。
バナーが1ページにふたつ表示されている状態です。
この場合なにが原因だと考えられますか?
0839831
2005/08/16(火) 18:24:38ID:22f9XKc9携帯を装ったアクセスを拒否するためです
0840831
2005/08/16(火) 19:35:34ID:22f9XKc9おまえらありがとう
0841nobodyさん
2005/08/16(火) 20:53:51ID:???http://www.google.co.jp/search?hl=ja&q=perl+Berkeley+db
0842nobodyさん
2005/08/17(水) 02:32:55ID:???linux板でしたほうがいいですか?それともここでよろしいですか?
0843nobodyさん
2005/08/17(水) 06:28:22ID:???0845nobodyさん
2005/08/18(木) 11:15:58ID:qmrkuNcGLinux+apache1.3.33+Perl5でシステム関数等を使用禁止にしたいです。
PHPにはsafe_mode?とかがあるようですが、、、
検索もうまくヒットできないので、ヒントを教えて頂けませんか
0846nobodyさん
2005/08/18(木) 21:05:39ID:???http://search.cpan.org/~nwclark/perl-5.8.7/ext/Opcode/Opcode.pm
http://search.cpan.org/~nwclark/perl-5.8.7/pod/perlrun.pod
0847nobodyさん
2005/08/25(木) 18:58:47ID:/oUQtUpvイメージとしてはwebminのminiserv.plみたいなものです。
だからといってminiserv.plパクるのは無しでお願いします。
httpsでお話できるのも必須です。
そんなナイスなCPANモジュールをご存じないですか?
0848847
2005/08/25(木) 19:02:38ID:???わがまま言ってスマソ
0849nobodyさん
2005/08/25(木) 19:57:35ID:???httpsでお話できるのも必須です。
↑
それって普通のHTTPサーバじゃないのか?
0850nobodyさん
2005/08/25(木) 20:05:03ID:???何をしたいのか、誤解のないように正確に書きましょう。
0851847
2005/08/25(木) 23:17:51ID:YyTm9DNHそんなんで探してみたら、それらしいCPANのライブラリありますた。
http://search.cpan.org/~rse/lcwa-1.0.0/lib/lwp/lib/HTTP/Daemon.pm
こんな感じですね。
で、perlのスクリプトに対してリクエストが来たら、それを実行したいのです。
そして、このperlのスクリプトの中ではCGI.pmが使えるとうれしい、、とうい意味なのです。
なんでCGI.pmかというと、POSTやGETで来た変数をCGI.pmを使って楽に処理したいのからです。
結局、Perlで書かれたWebサーバで、CGIが実行できるものを探していまふ。
0852nobodyさん
2005/08/25(木) 23:21:33ID:???0853nobodyさん
2005/08/25(木) 23:25:41ID:???0854nobodyさん
2005/08/25(木) 23:34:08ID:???0855nobodyさん
2005/08/25(木) 23:48:26ID:???■ このスレッドは過去ログ倉庫に格納されています