トップページ⇒php
1001コメント316KB

Perlコーディング初心者質問スレ Part 47

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/03/01(水) 15:39:31ID:???
Perlのコーディングで困ってる人のスレです。 

【投稿する際の注意】 
質問するときは内容をよく吟味してから投稿してください。 
「コマンドの意味がわかんない」とかはマニュアル見ましょう。 
回答者さんは何でも屋じゃありません。 

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:???
[過去ログ] 1 of 4 

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:???
[過去ログ] 2 of 4 

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:???
[過去ログ] 3 of 4 

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:???
[過去ログ] 4 of 4 
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:???
[過去ログ] New!!
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スレより 1 of 2 

[プログラミング自体の経験が無い奴はまずココを読め] 
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:???
ム板Perlスレより 2 of 2 

[モジュール] 
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:???
------------ テンプレここまで ------------

ごめ、ちょっと失敗しちゃった…。
0011nobodyさん2006/03/01(水) 15:55:34ID:???
> >>994
> どの辺が?詳しく!!
>
> >>995
> ここ!?

これが質問している人間の態度かよ
00129872006/03/01(水) 15:59:02ID:???
>>11
ごめんなさい…。

>>前スレの995
> print MAIL "Subject: $sub_msg\n";
↓
> print MAIL "Subject: $sub_msg\n\n";
ですか??
0013nobodyさん2006/03/01(水) 16:26:10ID:???
>>12
やってみたら
00149872006/03/01(水) 16:32:13ID:???
とりあえず修正したものをアップしましたが、
私の環境からは送れなかった事がないので、
これが原因なのかはまだわかりません。
(誰かが送れなくて連絡をくれるまでは…)
0015nobodyさん2006/03/01(水) 16:32:34ID:???
前スレ995が言ってるのは$sub_msgの中身の話だと思うよ。そこ以上に。
というか、RFC(ry

最近は qmail や Postfix が動いてる場合が多いんだけど、
今でも sendmail 使ってるサーバなのかなとオプション見て思った。

> open(MAIL,"| $sendmail -t -n -oi $mail_addrs") || &msg("メール送信に失敗しました。");
0016nobodyさん2006/03/01(水) 16:40:16ID:???
print MAIL "To: $mail_addrs\n";
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:???
メールのサブジェクトはマルチバイトが入るなら Base64 エンコードするなりなんかしてください

ってことでFA?
0020nobodyさん2006/03/01(水) 17:51:17ID:???
> メールのサブジェクトはマルチバイトが入るなら Base64 エンコードする

エンコードするだけで FA されても困ります。

> なりなんかしてください

他の方法があるなんてはつみみです。
0021nobodyさん2006/03/01(水) 17:52:43ID:???
>20
お前が低脳なのを棚に上げて初耳とかワロス





    ぐ  ぐ  れ
0022nobodyさん2006/03/01(水) 17:57:40ID:???
>>21
またまたご冗談を。
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:???
ほとんど"Q"(Quoted Printable) encodingなんて使わないからね。

http://www.atmarkit.co.jp/fnetwork/rensai/netpro04/netpro01.html
http://www.ietf.org/rfc/rfc2047.txt
0027nobodyさん2006/03/01(水) 21:59:41ID:???
【.  CGI名  .】 White Board
【配布先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:???
>27
マルチポストすんな、クズが
http://pc8.2ch.net/test/read.cgi/php/1077525387/927
0029nobodyさん2006/03/01(水) 22:18:23ID:???
>>27
本物は、依頼のときは age るみたいよ
0030nobodyさん2006/03/01(水) 22:25:55ID:???
>>28
ではどこにスレ立てすれば?誘導してください
0031nobodyさん2006/03/01(水) 23:13:35ID:???
スレ立てる気か!
0032nobodyさん2006/03/02(木) 02:28:51ID:???
>>30

作者のサイトの掲示板にスレ立てればいい。
または
http://pc8.2ch.net/test/read.cgi/php/1077525387/930
0033nobodyさん2006/03/02(木) 11:21:11ID:???
Image::Magickをインストールしようと
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:???
age
0036nobodyさん2006/03/02(木) 14:53:32ID:x9+bzH30
>>34
それはインストールしてみたんですが関係ないみたいです…
0037nobodyさん2006/03/02(木) 16:12:51ID:???
>>33
proxyの設定をすれば幸せになれるんじゃね?
00383192006/03/02(木) 17:34:42ID:???
>>37
proxy…
分からない…
0039nobodyさん2006/03/02(木) 18:09:13ID:???
>>33
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:???
print FUCK_IN_FILE join("\n", @fuck_in_array);

これでどう?
0042nobodyさん2006/03/02(木) 23:55:05ID:???
>>41
できました!
ありがとうございます。
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の数も任意だから後ろから取り出すこともできないし。
オプションの値を二極化することにします。

お騒がせしました。
0046nobodyさん2006/03/03(金) 10:37:23ID:???
>>43-45
-b [value] を満たすにはちと改造が必要だが、Getopt::Std
0047nobodyさん2006/03/03(金) 10:42:49ID:???
>>46
Getopt::Std だと value と string1 が区別できるようになるの?
0048nobodyさん2006/03/03(金) 10:59:23ID:???
>>46
お返事ありがとうございます。

使ってみましたが、おっしゃるとおり -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:の部分です。
0050nobodyさん2006/03/03(金) 12:46:58ID:???
>>49
上手くいかなかった正規表現を晒してみ。
0051nobodyさん2006/03/03(金) 12:47:36ID:???
正規表現なんか使わんでもsplit多用したらできるんとちゃう
0052nobodyさん2006/03/03(金) 12:50:41ID:FQZyKwaV
($hogehoge[$i] =~ m/([0-9]\: +\d+)/)
とかやってました・・・
全然だめです
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:???
そこまでいけたらもうひといきやん。 +(\d+)
0055nobodyさん2006/03/03(金) 13:28:52ID:???
>>38

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:FQZyKwaV
曜日 月 日 時:分:秒 年
Sat 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:???
>>56
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:???
HTTP::Date とか使えば日付はいじれるんじゃないかなぁ。
0061nobodyさん2006/03/03(金) 18:22:06ID:???
なにそれ? Date::Manip とかの方がよくね?
0062nobodyさん2006/03/03(金) 19:59:14ID:5hL2Isoz
質問です:フォームで選択したcheckbox select のvalueを外部ファイルに保存し、
GETリクエストから渡された値を外部ファイルから検索し該当する行に保存されたものをフォーム上に復元したいのですが、
テキスト、チェックボックス、ラジオボタンまでは出来たのですが 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で渡された変数です。
0064nobodyさん2006/03/03(金) 20:36:38ID:???
>>61
それ、異様にデカくね?
0065nobodyさん2006/03/03(金) 20:37:34ID:???
>>62
なんかしらんけど、HTML::FillInForm でも使ってろ。

http://search.cpan.org/~tjmather/HTML-FillInForm-1.06/lib/HTML/FillInForm.pm
0066ヽ(´ー`)ノ ◆.ogCuANUcE 2006/03/03(金) 21:06:07ID:???
>>57

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:???
index.htmlを自動で生成してある特定の部分だけランダムに生成するようにして、
cgiにアクセスするとindex.htmlが更新されるcgiを作ったのですが、
5日ごとに自動で更新できるようにしたいのです。
調べてみてもそういった手法はないみたいです。
チャットのようなものや、cgiにアクセスした状態でないとできないみたいです。
cgiファイルがアクセスされることなしに自分で実行して、5日ごとにページが更新されている
そんなcgiを作成してみたいのです。
よろしくお願いします。
0068 ◆TWARamEjuA 2006/03/03(金) 23:35:03ID:???
cronさんでそのcgiさんを定時に呼び出してあげるとか?
自鯖ならcronさんだけで桶だけれども。
0069672006/03/03(金) 23:53:28ID:???
>>68さんあいがとう。
調べてみたら、私が利用しているロリポップではcronがつかないのです・・・。
他の方法を調べてみます。・・・。
0070nobodyさん2006/03/04(土) 00:08:26ID:???
過去更新した日から5日以上経っていたら、更新するんじゃだめなの。
0071nobodyさん2006/03/04(土) 00:14:17ID:???
>>57
もう解決してるけど。月日と時が欲しいんだよね。

my $date = "Sat Jan 1 13:12:26 2005";
my($md, $h) = ($date =~ / (¥S+ ¥d+) (¥d+):/i);
0072nobodyさん2006/03/04(土) 00:17:26ID:???
>>71
?
0073nobodyさん2006/03/04(土) 00:20:24ID:???
>>69
じゃ、cron使える所にプログラム仕込んで
5日に1回、cgiを叩くようにする。

もしくは、変更される箇所をJavaScriptにする。
日付を5で割った余りを見て、そこだけランダムに生成。
これだとcgiも要らない。
ソースは見えちゃうけど。
0074nobodyさん2006/03/04(土) 00:27:13ID:???
>>72
>>49,53 を見てたら月日と、時間が別々に要るっぽかったので。
モジュールを使わない方向で、オートマトンが短くなるように書いてみた。

iオプションは要らなかったか…
my($md, $h) = ($date =~ / (¥S+ ¥d+) (¥d+):/);
0075nobodyさん2006/03/04(土) 01:05:20ID:???
どーしてモジュールつかわないんだろう。
0076692006/03/04(土) 02:01:29ID:???
>>70さん それで全然OKです。

>>73さん javascriptの併用もOKです。それでしたら決められた日時が来たら、再度cgiを読みこむ
       といった具合にしてみたいです。

ちょっとまた調べてきます。レスをありがとうございました。
0077nobodyさん2006/03/04(土) 02:13:12ID:8Fz2Q4U8
1: %2Fを「/」にしたいです。。

2: $hoge =~ s/%2F///g; と書いてみましたが

3: エラーが出て上手くいきませんでした。

同じようにして
$hoge2 =~ s/%3A/:/g;
は、うまくいったのでサーバの問題とかそういうのではないと思います。
よろしくおねがいします。
0078nobodyさん2006/03/04(土) 02:15:35ID:???
/\//
0079nobodyさん2006/03/04(土) 02:17:29ID:8Fz2Q4U8
>>78
うぁーん、できました。・゚・(ノД`)・゚・。
ありがとうございました
0080nobodyさん2006/03/04(土) 04:36:18ID:???
>>77
s[%2F][/]gとかs|%2F|/|gという風にも書ける。
こっちの方が見やすいからお勧め
0081nobodyさん2006/03/04(土) 04:38:32ID:???
>>76
訪問者があった段階でCGIを動作させ、前回更新より5日経っていたら書き換えってことにすればいいのでは?
0082nobodyさん2006/03/04(土) 04:44:18ID:???
やる必要は無いのだろうが、個人的には%もエスケープしてあげたい
0083nobodyさん2006/03/04(土) 05:01:24ID:???
>>77
ところで、もしかしてやりたい事はこれだったりする?
$hoge =~ s{ %([[:xdigit:]]{2}) }{ pack('H2', $1) }gex;
0084nobodyさん2006/03/04(土) 15:23:11ID:???
ホスト名の始めのピリオドまでを置換で消したいのですがうまくいきません。
「○○○.」○○○.jp や 「○○○.」○○○.○○○.jp のような。

$host_name =~ s/.+\.//;


ってやってみましたがうまくいきませんでした。
ご教授お願いします。
0085nobodyさんNGNG
+ や * の直後に ? を書くと最短マッチ
0086nobodyさん2006/03/04(土) 16:11:17ID:???
>>85
�d!!うまくいったよ!!!
最長とか最短とかも理解できたよ、ありがと!!
0087nobodyさん2006/03/04(土) 16:51:16ID:???
>86さんではないけど、>85さんいい事知りました
ありがと
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:???
g→eg
0091nobodyさん2006/03/04(土) 21:13:06ID:???
>>90
>>89
0092nobodyさん2006/03/04(土) 21:16:44ID:???
またおみくじかよお前ら飽きないなwww
0093nobodyさん2006/03/04(土) 21:47:11ID:???
>>88
googleで、「おみくじ perl」で検索してください。
0094882006/03/04(土) 22:14:18ID:???
おかげさまでできました。
みなさんありがとうございました
0095762006/03/05(日) 00:33:38ID:???
>>81
なるほど、そういうアプローチもありますね。
今なお探しているんですが、ソースを組み合わせるところまで行っていません・・。
0096762006/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";}
0100nobodyさん2006/03/05(日) 19:22:40ID:???
>>99
無駄に括弧つけると読みにくいでつよ?
0101982006/03/05(日) 19:43:37ID:???
>>99
下のでできました、ありがとうございます
■ このスレッドは過去ログ倉庫に格納されています