Perlコーディング初心者質問スレ Part 47
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/03/01(水) 15:39:31ID:???【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。
1: 自分はこういう事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。
最低でも1と3が無いと誰も答えられないよ。
ソース貼る時は、全角スペースでインデント忘れずに。
良い回答は良い質問から。一緒に勉強しましょう。
過去ログやお勧めサイトは >>2-10
0002nobodyさん
2006/03/01(水) 15:44:45ID:???CGI: Common Gateway Interface part 13
http://pc8.2ch.net/test/read.cgi/php/1126436361/
【Perl,CGI】参考書籍 第三版
http://pc8.2ch.net/test/read.cgi/php/1030209573/
【Perl】ファイルロック(排他処理)について語ろう
http://pc8.2ch.net/test/read.cgi/php/1024795138/
★負荷軽減対策委員会(Perl、PHP)★
http://pc8.2ch.net/test/read.cgi/php/1034645635/
Perlモジュールについて
http://pc8.2ch.net/test/read.cgi/php/997829243/
CGIに依存しないPerlの話題一般/Part2
http://pc8.2ch.net/test/read.cgi/php/1030548610/
★三 【 スクリプト改造工房 PART 8 】 ★三
http://pc8.2ch.net/test/read.cgi/php/1077525387/
【 スクリプト改造依頼スレ 】(丸投げ) part4
http://pc8.2ch.net/test/read.cgi/php/1127916965/
0003nobodyさん
2006/03/01(水) 15:46:22ID:???Part1 http://tako.2ch.net/test/read.cgi?bbs=perl&key=957208980 参照不能
DAT: http://tako.2ch.net/perl/dat/957208980.dat
Part2 http://tako.2ch.net/test/read.cgi?bbs=perl&key=971817087 参照不能
DAT: http://tako.2ch.net/perl/dat/971817087.dat
Part3 http://tako.2ch.net/test/read.cgi?bbs=perl&key=979894521 参照不能
DAT: http://tako.2ch.net/perl/dat/979894521.dat
Part4 http://tako.2ch.net/test/read.cgi?bbs=perl&key=984430156 参照不能
DAT: http://tako.2ch.net/perl/dat/979894521.dat
Part5 http://pc.2ch.net/php/kako/988/988728069.html
Part6 http://pc.2ch.net/php/kako/996/996075607.html
Part7 http://pc.2ch.net/php/kako/1000/10002/1000267444.html
Part8 http://pc.2ch.net/php/kako/1003/10039/1003900311.html
Part9 http://pc.2ch.net/php/kako/1009/10095/1009549309.html
Part10 http://pc.2ch.net/php/kako/1014/10145/1014556702.html
0004nobodyさん
2006/03/01(水) 15:46:59ID:???Part11 http://pc.2ch.net/php/kako/1017/10172/1017201229.html
Part12 http://pc.2ch.net/php/kako/1019/10199/1019917048.html
Part13 http://pc.2ch.net/php/kako/1022/10227/1022731565.html
Part14 http://pc.2ch.net/php/kako/1026/10269/1026977659.html
Part15 http://pc.2ch.net/php/kako/1028/10288/1028816385.html
Part16 http://pc.2ch.net/php/kako/1032/10320/1032070299.html
part17 http://pc.2ch.net/php/kako/1034/10345/1034583844.html
part18 http://pc.2ch.net/php/kako/1037/10377/1037797479.html
part19 http://pc.2ch.net/php/kako/1042/10422/1042260745.html
part20 http://pc2.2ch.net/php/kako/1044/10447/1044717887.html (タイトルに19と誤記)
0005nobodyさん
2006/03/01(水) 15:47:31ID:???part21 http://pc2.2ch.net/php/kako/1047/10479/1047980851.html
part22 http://pc2.2ch.net/php/kako/1050/10503/1050369328.html
part23 http://pc2.2ch.net/php/kako/1053/10530/1053051519.html
part24 http://pc2.2ch.net/php/kako/1054/10549/1054992610.html
part25 http://pc2.2ch.net/php/kako/1056/10567/1056730690.html
part26 http://pc5.2ch.net/php/kako/1059/10590/1059043704.html
part27 http://pc5.2ch.net/php/kako/1060/10608/1060808783.html
part28 http://pc5.2ch.net/php/kako/1063/10635/1063562491.html
part29 http://pc5.2ch.net/php/kako/1066/10662/1066286828.html
part30 http://pc5.2ch.net/test/read.cgi/php/1069846177/
0006nobodyさん
2006/03/01(水) 15:48:50ID:???part31 http://pc5.2ch.net/test/read.cgi/php/1072896288/
part32 http://pc5.2ch.net/test/read.cgi/php/1075545279/ (タイトルに31と誤記)
part33 http://pc5.2ch.net/test/read.cgi/php/1078076768/
part34 http://pc5.2ch.net/test/read.cgi/php/1081148490/
part35 http://pc5.2ch.net/test/read.cgi/php/1085557731/
part36 http://pc5.2ch.net/test/read.cgi/php/1089779036/
part37 http://pc5.2ch.net/test/read.cgi/php/1093106507/
part38 http://pc5.2ch.net/test/read.cgi/php/1097158988/
part39 http://pc5.2ch.net/test/read.cgi/php/1101522903/
part40 http://pc5.2ch.net/test/read.cgi/php/1106816922/
0007nobodyさん
2006/03/01(水) 15:49:30ID:???part41 http://pc8.2ch.net/test/read.cgi/php/1110383236/
part42 http://pc8.2ch.net/test/read.cgi/php/1116970588/
part43 http://pc8.2ch.net/test/read.cgi/php/1123777607/
part44 http://pc8.2ch.net/test/read.cgi/php/1129477637/
part45 http://pc8.2ch.net/test/read.cgi/php/1134049707/
part46 http://pc8.2ch.net/test/read.cgi/php/1137518266/ (前スレ)
part44-621氏による過去ログ倉庫
ttp://user.ftth100.com/mirrorhenkan/perl/
0008nobodyさん
2006/03/01(水) 15:50:02ID:???[プログラミング自体の経験が無い奴はまずココを読め]
Perlプログラミング講座: http://www.site-cooler.com/kwl/perl/
[本]
リャマ: http://www.oreilly.co.jp/books/4873111269/
駱駝: http://www.oreilly.co.jp/books/4873110963/
Effective Perl: http://www.ascii.co.jp/books/detail/4-7561/4-7561-3057-7.html
クックブック: http://www.oreilly.co.jp/books/4873112028/
[オンラインマニュアル] (追加)
最新のドキュメント: http://search.cpan.org/~nwclark/perl-5.8.7/
perl5.8.xのドキュメント(一部): http://www.kt.rim.or.jp/~kbk/perl-5.8/
perl5.005_03 のドキュメント: http://www.kt.rim.or.jp/~kbk/perl5.005/
日本語ドキュメント検索: http://www.cpan.jp/search.cgi
perldoc.jp: http://www.perldoc.jp/
Perldoc.com: http://www.perldoc.com/
0009nobodyさん
2006/03/01(水) 15:51:55ID:???[モジュール]
CPAN.com: http://search.cpan.org/
河馬屋二千年堂: http://homepage3.nifty.com/hippo2000/
[テクニック]
Perlメモ: http://www.din.or.jp/~ohzaki/perl.htm
Perlのページ: http://homepage1.nifty.com/nomenclator/perl/
Perlの小技: http://homepage3.nifty.com/hippo2000/perltips/index.htm
[Perl5.8Unicodeメモ]
http://www.pure.ne.jp/~learner/program/Perl_unicode.html
http://www.namazu.org/~tsuchiya/perl/perl-5.8.html
http://www.lr.pi.titech.ac.jp/~abekawa/perl/perl_unicode.html
関連スレ
正規表現道場@2ch Part4
http://pc8.2ch.net/test/read.cgi/php/1105930285/
0010nobodyさん
2006/03/01(水) 15:52:31ID:???ごめ、ちょっと失敗しちゃった…。
0012987
2006/03/01(水) 15:59:02ID:???ごめんなさい…。
>>前スレの995
> print MAIL "Subject: $sub_msg\n";
↓
> print MAIL "Subject: $sub_msg\n\n";
ですか??
0014987
2006/03/01(水) 16:32:13ID:???私の環境からは送れなかった事がないので、
これが原因なのかはまだわかりません。
(誰かが送れなくて連絡をくれるまでは…)
0015nobodyさん
2006/03/01(水) 16:32:34ID:???というか、RFC(ry
最近は qmail や Postfix が動いてる場合が多いんだけど、
今でも sendmail 使ってるサーバなのかなとオプション見て思った。
> open(MAIL,"| $sendmail -t -n -oi $mail_addrs") || &msg("メール送信に失敗しました。");
0016nobodyさん
2006/03/01(水) 16:40:16ID:???print MAIL "From: $mail_addrs\n";
print MAIL "BCC: $mail_addrs_bcc\n";
print MAIL "Subject: $sub_msg\n";
print MAIL "MIME-Version: 1.0\n";
print MAIL "Content-type: text/plain; charset=ISO-2022-JP\n";
print MAIL "Content-Transfer-Encoding: 7bit\n";
print MAIL "X-Mailer: UNKO\n\n";
とかつけたら?
0017nobodyさん
2006/03/01(水) 16:47:35ID:???> これが原因なのかはまだわかりません。
じゃあ環境が整ってないんじゃん。
今ここであーだこーだ言ってもしょうがないって訳か。
その送れないって奴を連れてくるか、ここにそのフォームを晒すかしなきゃ解決にはならんよーな
0018nobodyさん
2006/03/01(水) 17:10:42ID:???メールアドレスが不正なものでないかどうか検証してる?
フォームについても同様。
0019nobodyさん
2006/03/01(水) 17:49:38ID:???ってことでFA?
0020nobodyさん
2006/03/01(水) 17:51:17ID:???エンコードするだけで FA されても困ります。
> なりなんかしてください
他の方法があるなんてはつみみです。
0021nobodyさん
2006/03/01(水) 17:52:43ID:???お前が低脳なのを棚に上げて初耳とかワロス
ぐ ぐ れ
0023nobodyさん
2006/03/01(水) 18:02:20ID:???ここ本当に初心者しか居ない
0024nobodyさん
2006/03/01(水) 18:05:24ID:???0025nobodyさん
2006/03/01(水) 19:04:33ID:???0026nobodyさん
2006/03/01(水) 20:34:11ID:???http://www.atmarkit.co.jp/fnetwork/rensai/netpro04/netpro01.html
http://www.ietf.org/rfc/rfc2047.txt
0027nobodyさん
2006/03/01(水) 21:59:41ID:???【配布先URL】 http://powder-snow.milk.tc/
【 依頼期限 】 なるべく早めにお願いします
【. 依頼内容 】 当サイトの掲示板でnemuの部屋の雑談板のように頻繁にアドレス乱立スレが立ちます。
今は雑談板を閉鎖しているのですが待っている方もみえます、以前は串制限やホスト名を制限していましたが無意味な結果が現状です
上記のcgiにBBQを組み込みたいのですがどこに組み込んで良いのかわかりません
if (gethostbyname(join(".",reverse(split(/\./,$ip))).".niku.2ch.net") eq "\x7f\x00\x00\x02")
これをどこに組み込めば良いのかどうか宜しくお願いします
0028nobodyさん
2006/03/01(水) 22:17:51ID:???マルチポストすんな、クズが
http://pc8.2ch.net/test/read.cgi/php/1077525387/927
0031nobodyさん
2006/03/01(水) 23:13:35ID:???0032nobodyさん
2006/03/02(木) 02:28:51ID:???作者のサイトの掲示板にスレ立てればいい。
または
http://pc8.2ch.net/test/read.cgi/php/1077525387/930
0033nobodyさん
2006/03/02(木) 11:21:11ID:???DOSで
ppm
install Image::Magick
と打ち込むと
Error no valid repositories:
Error: 500 Can't connect to ppm.ActiveState.com:80(connect: unknow error)
Error: 500 Can't connect to ppm.ActiveState.com:80(connect: unknow error)
とでます。
原因は何なのか分かるかたいらっしゃいますか?
perlのバージョンはv5.8.7です
0034nobodyさん
2006/03/02(木) 11:45:43ID:???WinでImageMagickを挿れるときは、ImageMagickの本サイトからインストールできる
0035nobodyさん
2006/03/02(木) 11:51:47ID:???0036nobodyさん
2006/03/02(木) 14:53:32ID:x9+bzH30それはインストールしてみたんですが関係ないみたいです…
0039nobodyさん
2006/03/02(木) 18:09:13ID:???Image Magickバイナリをインストールするときに
> Select Additional Tasks
のところで
> Install PerlMagick for ActiveState Perl v5.8.7 build 815
にチェック入れるだけ。
0040nobodyさん
2006/03/02(木) 23:27:53ID:???2行目以降の行頭に半角スペースがはいってしまうんです。
対処方法ありませんか?
0041nobodyさん
2006/03/02(木) 23:32:51ID:???これでどう?
0043nobodyさん
2006/03/03(金) 10:10:16ID:???たとえば、
-a :必ず値がない
-b [VALUE] :値があるかもしれないしないかもしれない
-c VALUE :必ず値がある
こんな感じのオプションがあるとして、さらに引数に任意の文字列を与えられる場合、
つまり以下のような感じです。
command.pl [-a] [-b [value]] [-c value] string1 [string2 string3...]
これを間違いなく受け取るにはどうしたらいいでしょうか。
例えば以下のようなときにどうすればいいかわかりません。
command.pl -c string1
すべてのオプションを値を必須、もしくは無しの二極にするしかないでしょうか。
0044nobodyさん
2006/03/03(金) 10:12:00ID:???>さらに引数に任意の文字列を与えられる場合
さらに引数に任意の文字列を任意の数与えられる場合
> command.pl -c string1
command.pl -b string1
0045nobodyさん
2006/03/03(金) 10:21:13ID:???valueなのかstring1なのかなんて調べようがないし、
valueが有効な値のみで構成されているか調べても、任意の文字がはいるstring1は
もしかしたらその文字だけで構成されているかもしれないし。
stringの数も任意だから後ろから取り出すこともできないし。
オプションの値を二極化することにします。
お騒がせしました。
0048nobodyさん
2006/03/03(金) 10:59:23ID:???お返事ありがとうございます。
使ってみましたが、おっしゃるとおり -b [value]はそのままでは受け渡せませんでした。
単純に -x の次の値を値として取得しているだけのようなので、
このモジュールでは難しいように思います。
とりあえず -b none という「値を指定しないという値」を作って、
問題が出たときはこの値を明示することにしました。
0049nobodyさん
2006/03/03(金) 12:45:49ID:FQZyKwaV曜日 月 日 時:分:秒 年
Sat Jan 1 13:12:26 2005
Sun Jan 2 14:16:50 2005
と言うデータがあったら「時」の部分だけ取り出す正規表現を教えてください。
上の二件のデータですと13:と14:の部分です。
0051nobodyさん
2006/03/03(金) 12:47:36ID:???0052nobodyさん
2006/03/03(金) 12:50:41ID:FQZyKwaVとかやってました・・・
全然だめです
0053nobodyさん
2006/03/03(金) 12:53:12ID:FQZyKwaV=~ m/([A-Z][a-z]{2} +\d+)/)
とやったら月日はうまく出せたんです。
Sat Jan 1 13:12:26 2005
Jan 1
0054nobodyさん
2006/03/03(金) 12:57:19ID:???0055nobodyさん
2006/03/03(金) 13:28:52ID:???ttp://www.att.or.jp/perl/faq/perlwin32faq/perlwin32faq11j.html#ppm_and_proxies
0056nobodyさん
2006/03/03(金) 13:48:50ID:???--- Module.pm ---
package Module;
use strict;
use CGI;
1;
--- script.pl ---
use lib '.';
use Module;
$cgi = new CGI;
print "hoge\n";
exit;
このようなファイルがあるときに、
perl script.pl を実行すると、"hoge" が出力されます。
use Module; することで、use CGI が script.pl で
実行されたように継承されると思うのですが、
Module.pm 内の use strict; までは継承されないのでしょうか?
もちろん、script.pl に use strict を入れると $cgi でエラーが出ます。
同じように、use warnings も各スクリプト上でしか機能しないのでしょうか?
0057nobodyさん
2006/03/03(金) 14:17:45ID:FQZyKwaVSat Jan 1 13:12:26 2005
Sun Jan 2 14:16:50 2005
上のデータを
=~ m/([0-9][0-9]\:+(\d+))/)
とやったところ
結果が
13:12
14:16
と出てしまいます。
曜日 月 日 時:分:秒 年
と言うデータがあったら「時」の部分だけ取り出したいので
13:
14:
と出したいのですが、どうもうまくいきません・・・
0058nobodyさん
2006/03/03(金) 14:24:58ID:???あと、無駄なカッコは外そう。
m/[A-Z][a-z]{2} +\d+ +(\d+\:)\d+/
0059nobodyさん
2006/03/03(金) 16:30:44ID:???script.pl 内で use Module 後に CGI->new が可能なのは、
use CGI が*どのファイルで行われているかに関わらず、*
現在のプロセスに CGI.pm 中のコードが読み込まれた後だから。
strict プラグマはその書き方だとファイルスコープに対して
効いているので、別ファイルのコードに影響は及ばない。
> use warnings も各スクリプト上でしか機能しないのでしょうか?
http://perldoc.jp/docs/perl/5.8.1/warnings.pod
0060nobodyさん
2006/03/03(金) 17:46:07ID:???0061nobodyさん
2006/03/03(金) 18:22:06ID:???0062nobodyさん
2006/03/03(金) 19:59:14ID:5hL2IsozGETリクエストから渡された値を外部ファイルから検索し該当する行に保存されたものをフォーム上に復元したいのですが、
テキスト、チェックボックス、ラジオボタンまでは出来たのですが Selectをどう再現すればいいかで悩んでます。
外部ファイルへの保存は {テキストエリア,チェックボックス1,2,3,セレクト1,2} という形で各valueを保存しています。
例: inputtext,chked1,,chked3,sel13,sel0
読み出しはカンマ区切りを変数に読み出す形で行っています。
open (DATA,"hozon.dat"); @DATA = <DATA>; close (DATA);
foreach $linename (@DATA)
if ($linecont =~ /$name/i ){
($textfield1,$chk1,$chk2,$chk3,$sel1,$sel2) = split (/,/,$linecont);
if ($chk2 eq "chked2") {$chked2 = "checked";} else {$chked2 = "";}
以下復元処理
#htmlでは <input type="checkbox" value="chked2" $chked2> といった具合です
#<select name="select1">
#<option value="0" selected=もじゃもじゃもじゃ >セレクト選択肢1</option> ←ここを復元したい、選択肢は60個程
0063nobodyさん
2006/03/03(金) 20:02:24ID:5hL2Isoz$names は GETで渡された変数です。
0065nobodyさん
2006/03/03(金) 20:37:34ID:???なんかしらんけど、HTML::FillInForm でも使ってろ。
http://search.cpan.org/~tjmather/HTML-FillInForm-1.06/lib/HTML/FillInForm.pm
0066ヽ(´ー`)ノ ◆.ogCuANUcE
2006/03/03(金) 21:06:07ID:???use HTTP::Date qw(parse_date);
my $n = (parse_date('Sat Jan 1 13:12:26 2005'))[3];
# => 13
0067nobodyさん
2006/03/03(金) 23:13:58ID:???cgiにアクセスするとindex.htmlが更新されるcgiを作ったのですが、
5日ごとに自動で更新できるようにしたいのです。
調べてみてもそういった手法はないみたいです。
チャットのようなものや、cgiにアクセスした状態でないとできないみたいです。
cgiファイルがアクセスされることなしに自分で実行して、5日ごとにページが更新されている
そんなcgiを作成してみたいのです。
よろしくお願いします。
006967
2006/03/03(金) 23:53:28ID:???調べてみたら、私が利用しているロリポップではcronがつかないのです・・・。
他の方法を調べてみます。・・・。
0070nobodyさん
2006/03/04(土) 00:08:26ID:???0071nobodyさん
2006/03/04(土) 00:14:17ID:???もう解決してるけど。月日と時が欲しいんだよね。
my $date = "Sat Jan 1 13:12:26 2005";
my($md, $h) = ($date =~ / (¥S+ ¥d+) (¥d+):/i);
0073nobodyさん
2006/03/04(土) 00:20:24ID:???じゃ、cron使える所にプログラム仕込んで
5日に1回、cgiを叩くようにする。
もしくは、変更される箇所をJavaScriptにする。
日付を5で割った余りを見て、そこだけランダムに生成。
これだとcgiも要らない。
ソースは見えちゃうけど。
0074nobodyさん
2006/03/04(土) 00:27:13ID:???>>49,53 を見てたら月日と、時間が別々に要るっぽかったので。
モジュールを使わない方向で、オートマトンが短くなるように書いてみた。
iオプションは要らなかったか…
my($md, $h) = ($date =~ / (¥S+ ¥d+) (¥d+):/);
0075nobodyさん
2006/03/04(土) 01:05:20ID:???007669
2006/03/04(土) 02:01:29ID:???>>73さん javascriptの併用もOKです。それでしたら決められた日時が来たら、再度cgiを読みこむ
といった具合にしてみたいです。
ちょっとまた調べてきます。レスをありがとうございました。
0077nobodyさん
2006/03/04(土) 02:13:12ID:8Fz2Q4U82: $hoge =~ s/%2F///g; と書いてみましたが
3: エラーが出て上手くいきませんでした。
同じようにして
$hoge2 =~ s/%3A/:/g;
は、うまくいったのでサーバの問題とかそういうのではないと思います。
よろしくおねがいします。
0078nobodyさん
2006/03/04(土) 02:15:35ID:???0079nobodyさん
2006/03/04(土) 02:17:29ID:8Fz2Q4U8うぁーん、できました。・゚・(ノД`)・゚・。
ありがとうございました
0082nobodyさん
2006/03/04(土) 04:44:18ID:???0083nobodyさん
2006/03/04(土) 05:01:24ID:???ところで、もしかしてやりたい事はこれだったりする?
$hoge =~ s{ %([[:xdigit:]]{2}) }{ pack('H2', $1) }gex;
0084nobodyさん
2006/03/04(土) 15:23:11ID:???「○○○.」○○○.jp や 「○○○.」○○○.○○○.jp のような。
$host_name =~ s/.+\.//;
ってやってみましたがうまくいきませんでした。
ご教授お願いします。
0085nobodyさん
NGNG0087nobodyさん
2006/03/04(土) 16:51:16ID:???ありがと
0088nobodyさん
2006/03/04(土) 20:33:30ID:???$omikuji = '大吉','中吉','小吉'.'吉','凶';
と指定した後に
# おみくじ
$name =~ s/おみくじ/$omikuji/g;
としているのですが、大吉しか表示されません。
どうすればいいのでしょうか?
0089nobodyさん
2006/03/04(土) 20:44:58ID:???0090nobodyさん
2006/03/04(土) 21:09:45ID:???0092nobodyさん
2006/03/04(土) 21:16:44ID:???009488
2006/03/04(土) 22:14:18ID:???みなさんありがとうございました
009576
2006/03/05(日) 00:33:38ID:???なるほど、そういうアプローチもありますね。
今なお探しているんですが、ソースを組み合わせるところまで行っていません・・。
009676
2006/03/05(日) 02:19:28ID:???同一IPアドレスから一日一回しかindex.htmlを生成しない
5日おきくらいに自動更新できればいいかなと思ったんですが、
googleのこと考えると更新のペースは早いほうがいいと判断したためです。
これで正常動作したら完成です。
レスしてくれた皆様、ありがとうございました。
0097nobodyさん
2006/03/05(日) 02:22:34ID:???0098nobodyさん
2006/03/05(日) 18:43:40ID:???if ($1 ne "1") { print "hage"; }
条件に1か2でない場合hageを実行したいのですが
if ($1 ne "1”) { 処理内容 } elsif ($1 ne "2") { 処理内容 } else { 処理内容 }
これだと3つ処理内容が分割されてうまくいきません
条件が2つ実行内容は1つの場合どういう分がいいのでしょうか?
0099nobodyさん
2006/03/05(日) 19:10:38ID:???if (($1 ne "1") or ($1 ne "2")) {print "hage";}
たぶんやりたいのは
if (($1 ne "1") and ($1 ne "2")) {print "hage";}
■ このスレッドは過去ログ倉庫に格納されています