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

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

レス数が1000を超えています。これ以上書き込みはできません。
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
下のでできました、ありがとうございます
0102nobodyさん2006/03/05(日) 19:45:31ID:???
ついでだからandと&&を勉強しておこう
0103nobodyさん2006/03/05(日) 22:15:53ID:???
and と && に違いが?
0104nobodyさん2006/03/05(日) 22:21:35ID:???
ないと思ってる?
0105nobodyさん2006/03/05(日) 22:26:02ID:???
ifの時に関しては違い無いと思ってる
ほかは知らん使ったことないので
0106nobodyさん2006/03/05(日) 22:26:31ID:???
ほんと・・・初心者ばっかだなこのスレw
0107nobodyさん2006/03/05(日) 22:28:41ID:???
>>105
ifの時も違うよ。優先順位に注目。
0108nobodyさん2006/03/05(日) 22:28:53ID:???
とかいいつつ答えられてない煽るしか能のないチンカスがいるのはこのスレですか?
0109nobodyさん2006/03/05(日) 22:30:54ID:???
>>107
なるほど
いっつも &&、||、! しか使わんから気が付かなかった
thx
0110nobodyさん2006/03/05(日) 22:36:08ID:???
>>100
このスレ初心者が多いから括弧つけといた方が安全かもね。
0111nobodyさん2006/03/05(日) 22:39:11ID:???
>>108
「優先順位に注目」って書いてあるじゃん。馬鹿?
0112nobodyさん2006/03/05(日) 23:16:44ID:???
括弧のありなしは初心者云々では語りきれない。
01131032006/03/05(日) 23:19:42ID:???
おまいらもっと建設的になれよ('A`)
0114nobodyさん2006/03/05(日) 23:23:40ID:???
> 111
前レスから12秒・・・コレでなにも読めないか?
難儀だなオイ
0115nobodyさん2006/03/05(日) 23:24:52ID:???
自分の無知を晒してる馬鹿が居てワロス
0116nobodyさん2006/03/05(日) 23:29:40ID:???
As more readable alternatives to "&&" and "||" when used for control flow,
Perl provides "and" and "or" operators.

The short-circuit behavior is identical.
The precedence of "and" and "or" is *** much lower ***, however,
so that you can safely use them after a list operator
without the need for parentheses.
-- "perlop" man page
0117nobodyさん2006/03/05(日) 23:30:19ID:???
演算子の優先順位を眺めてたら ... っていう演算子があるのを発見した。
この流れのおかげだ。
0118nobodyさん2006/03/05(日) 23:31:22ID:???
>>117
/regexpA/ .. /regexpB/;
/regexpA/ ... /regexpB/;
下の時に使う奴だね。
0119nobodyさん2006/03/05(日) 23:45:42ID:???
...は
/regexpA/ ... /regexpA/;
の時に初めて存在価値があるわけだが。
0120nobodyさん2006/03/06(月) 11:21:16ID:???
初心者はすぐカッコつけるぅ
0121nobodyさん2006/03/06(月) 12:01:55ID:???
初心者はまずカッコから入るべし
0122nobodyさん2006/03/06(月) 16:10:02ID:???
↓ ギャッツビーつけて
0123nobodyさん2006/03/06(月) 17:03:49ID:???
↑古い
0124nobodyさん2006/03/06(月) 19:32:55ID:???
はい次
0125nobodyさん2006/03/06(月) 20:31:38ID:???
俺?
0126nobodyさん2006/03/06(月) 22:27:03ID:???
Perlでcoolなblogを作りたいと思っています
とりあえずActivePerlを入れて、blogのTopPageのDesignだけはCompleteしました
0127nobodyさん2006/03/06(月) 22:40:18ID:???
そうですか。
0128nobodyさん2006/03/06(月) 23:31:12ID:???
>125
そ、お前
何か質問無いの?
0129nobodyさん2006/03/07(火) 00:15:38ID:???
特に。
0130nobodyさん2006/03/07(火) 00:26:19ID:???
明日の夕飯のオカズ希望。
美味くて独創的なのがいい。
0131nobodyさん2006/03/07(火) 03:44:15ID:???
カレー味のカップヌードルにお湯を麺が丁度浸る程度まで入れて5分ほど放置
余ったお湯を捨てる (捨てるお湯の量が多いと味が薄くなるから気をつける)
温泉卵をぶち込む
軽くかき混ぜて食す

( ゚Д゚)グラッチェ
0132nobodyさん2006/03/07(火) 07:11:14ID:???
それは・・・オカズなのか?
0133nobodyさん2006/03/08(水) 10:57:35ID:???
perl4なベタベタコーディングから抜け出せないヘタレです。
質問なのですが、たとえば、
@aray1 = ("abc","AAAabcBBB","CCCabcDDD","\n");
foreach $line (@aray1){
$line =~ s/abc/xxx/g;
push(@aray2,$line);
}
print join(":",@aray1);
print join(":",@aray2);
と書いた場合、
>abc:AAAabcBBB:CCCabcDDD
>xxx:AAAxxxBBB:CCCxxxDDD
と出力されると記憶していましたが、実際には、
>xxx:AAAxxxBBB:CCCxxxDDD
>xxx:AAAxxxBBB:CCCxxxDDD
と出力されました。perlのバージョンは5.8.7です。
ぐぐったりしてみたんですが、perl4から5に変わるときに、上のコードの場合で言うところの$lineが、配列@aray1の値が代入されるんじゃなくて、実体を参照するようになったような、そうじゃないような曖昧な情報しか見つけられませんでした。
配列の値が代入されるって言い切ってるサイトもあるし。だとすれば上のようなコードで@aray1の中身まで置換されるのおかしいし。

実際のところ、
・perl4からperl5に上がった時に変更になった
・元々そうだった
・その他(コード自体に問題あり)

どうなんでしょうか?
わかる方いらっしゃいますでしょうか?
0134nobodyさん2006/03/08(水) 11:29:56ID:???
>>133
Perl4 の頃からそういう仕様だが。
<q cite="http://flex.ee.uec.ac.jp/texi/perl/perl_13.html#SEC32">
配列値が(配列値を返す expression ではなく)実際の配列の場合は、
ループの中で変数を変更することで配列要素を変更することができる。
</q>
0135nobodyさん2006/03/08(水) 13:05:53ID:???
foreach $line (@aray1){
の行を下記2行に書き換えてごらんあれ
foreach (@aray1){
 my $line = $_;
01361332006/03/08(水) 13:44:41ID:???
>> 134
>> 135
早速の回答ありがとうございます。
そうですか…perl4時代から既にそうだったんですね…orz
自分の無知を恥じます。

ところで、となると、foreachは与えられた配列の個々の要素の値をスカラー変数に「代入する」という表現のwebが散見されますが、この表現は間違いということなんでしょうか?
0137nobodyさん2006/03/08(水) 13:46:53ID:???
@hoge("a","b","c","d");

print "@hoge";
の時
a.b.c.d
みたいに間に「.」をいれて取り出したいんですがどのような書き方が最適でしょうか?
ご指導ご鞭撻のほどを
0138nobodyさん2006/03/08(水) 13:57:11ID:???
print join('.', @hoge);
0139nobodyさん2006/03/08(水) 15:14:48ID:???
>>136
正規のドキュメントと違う事を書いてる二次情報は間違いなんじゃない。
正規のドキュメントにツッコミ入れられるレベルの人なら書いた人に連絡
取るだろうし。

>>137
普通は >>138 のようにした方がいいけど
{ local $" = '.'; print "@hoge"; }
というやり方もある。
0140nobodyさん2006/03/08(水) 15:39:20ID:???
ありがとうございます
続けざまで申し訳ないんですが
require 'cgi-lib.pl'
&ReadParse(*in)
@hoge = @in('a','b','c');
で@hogeの値を取った場合
もしa(@hoge[0])に値が入れられてなかったら,をいれないみたいな処理
はできるでしょうか?
>>138さんのやり方でやるってみたのですが
,b,c
みたいになってしまいます
01411332006/03/08(水) 15:54:17ID:???
>>139
おっしゃるとおりで。
探しやすさとか読みやすさにかまけて正規ドキュメントのチェックを疎かにしてた僕が居ましたYO!って感じです。
勉強になりました。
0142nobodyさん2006/03/08(水) 16:13:07ID:???
perl5.8使ってるけど
>133みたく
foreach $aaa (@list){
ってやった場合、$aaaには実態じゃなくてリファレンスが入ってた
$aaaを別の値にしたら@listの内容も変った
0143nobodyさん2006/03/08(水) 19:09:21ID:IC708NPT
現在掲示板を作っている者です。
投稿された内容を表示する際、
投稿内容にアドレスがあればそれをそのアドレス先のリンクに置き換えたいと思っています。
まず、投稿内容から"http://"を探して次にそのアドレスの終わりを見つけ
アドレスの最初から終わりまでを置換しようとしています。
投稿内容から"http://"はindexをつかって見つけることが出来たのですが、
どうすればアドレスの終わりを見つけるのかが分かりません。
どのようなにすればアドレスの最初から終わりまでの位置を見つけることが出来ますか?
0144nobodyさんNGNG
どうせ置き換えるんだからサブスティチュート使えばいいじゃん
0145nobodyさん2006/03/08(水) 19:30:45ID:???
適当に正規表現でも使えばいいじゃん
0146nobodyさん2006/03/08(水) 19:48:33ID:???
>>140
文法が怪し過ぎるので一から勉強し直してくれ。
http://www.site-cooler.com/kwl/perl/2.htm

@hoge = grep defined && length, @in{'a','b'.'c'};

>>142
「リファレンスが入っている」とはこういう状態を指すんだけど。
print "$_\n" for my @ref_array = \(0..9);
print "$_\n" for my @num_array = (0..9);

実体に「別名」を付ける時は「エイリアス」と表現する事が多い。
http://www.kt.rim.or.jp/~kbk/perl5.005/perlsyn.html#Foreach_Loops

>>143
http://www.din.or.jp/~ohzaki/perl.htm#AutoLink
0147nobodyさん2006/03/08(水) 21:45:07ID:???
>146
あ〜そうそれ
エイリアスってやつ
言葉間違えたorz
01481432006/03/08(水) 22:04:58ID:IC708NPT
>>144-146
リンクに置換することが出来ました。
ありがとうございます。
0149nobodyさん2006/03/10(金) 14:44:19ID:Uu8wqJhR
お願いします。

変数「$daylimit」にaaaa/bb/cc(またはaaaa/b/c)の形で日付が格納されています。
これを元にソートしたいのです。
そこで疑問が2つあります。
1.aaaa/bb/ccからスラッシュを抜く方法(aaaa/bb/cc→aaaabbccにする)
2.1月または1日などの10の位がない時に0を付け足す方法(aaaa/b/c→aaaa0b0c)
これはどのようにしたら良いのですか?
方法を教えてください。お願いします。
0150nobodyさん2006/03/10(金) 14:51:12ID:???
sprintf "%04d%02d%02d", split "/", $daylimit;
ちなみに日付は文字列順になるから/は抜かなくてもおk
0151ヽ(´ー`)ノ ◆.ogCuANUcE 2006/03/10(金) 14:53:34ID:???
>>149

1. split('/', $daylimit)
2. sprintf('%04d%02d%02d', split('/', $daylimit))

sort する時は sprintf() した結果を cmp で比べるといい。
0152nobodyさん2006/03/10(金) 15:00:19ID:Uu8wqJhR
すばやい解答ありがとうございます。

ということは、

$daylimit2 = sprintf('%04d%02d%02d', split('/', $daylimit)) ;

として、$daylimit2でソートしたらOKって事ですね。
ありがとうございました。
0153nobodyさん2006/03/10(金) 20:49:15ID:???
質問した方も答える方も綺麗に終わると気持ちいいもんだね
0154nobodyさん2006/03/10(金) 20:55:15ID:???
おしりだって洗ってほしい。
0155nobodyさんNGNG
あの世から純ちゃん降臨キタ━━━━━━(゚∀゚)━━━━━━!!!
0156nobodyさん2006/03/11(土) 01:02:36ID:???
おねがいします
よくある商品を選んだら注文フォームに飛ぶHPを作りたいのですが
注文フォームで すでに商品名が入力済みの形を取っている
を実現したいのですが
よろしくお願いします

0157nobodyさん2006/03/11(土) 01:14:18ID:???
だからなんだよ。何処までやってみて、何が出来ないのか具体的に書け。
0158nobodyさん2006/03/11(土) 01:24:04ID:???
それはPerlの質問なのか?
type="text" なら、input のvalue に商品名入れな
0159nobodyさん2006/03/11(土) 01:32:55ID:???
【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。

1: 自分はこういう事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。
01601562006/03/11(土) 02:44:05ID:???
すいません perl やる以前の問題でした
まずタグから勉強して出直してきます
0161nobodyさん2006/03/11(土) 03:03:59ID:2NEkCx5l
WinXP で AvtivePerl 5.8.7 を使ってるのですが、
ソースに use encoding が入っていると、
デバッガ動かしたときに
「問題が発生したため、Perl Command Line Interpreter
を終了します。ご不便をおかけして申し訳ありません。」という
ポップアップが出てしまいます。
(-d 無しだと普通に動く)
インストールやりなおしたりしたんですが現象変わりません。
なぜ??
0162nobodyさん2006/03/11(土) 04:37:32ID:???
AvtivePerl なんか使うひとはばかだから。
0163nobodyさん2006/03/11(土) 05:06:27ID:???
>>161
バグデータベースにも登録されてる。
ttp://bugs.activestate.com/show_bug.cgi?id=39261
漏れは回避方法知らん。

>>162
参考までに貴方の開発環境をお聞かせ願いたい。
cygwinのperl?それともPCのOSにLinuxかBSD辺りを常用してるとか?
0164nobodyさん2006/03/11(土) 05:36:10ID:???
多分NegativePerlとかだろ
0165nobodyさん2006/03/11(土) 05:42:46ID:???
>>163
> 参考までに貴方の開発環境をお聞かせ願いたい。
> cygwinのperl?それともPCのOSにLinuxかBSD辺りを常用してるとか?

VMware とか colinux とか知らない馬鹿ワロス
0166nobodyさん2006/03/11(土) 06:04:34ID:???
>>165
そうか、貴方はスクリプトを書いては一々仮想マシン上に移してテストしてるのか。
VMwareの共有フォルダ機能やSambaでも使って手軽にやってるのかな。
若しくは自動でFTP経由で変更分をアップロードするスクリプトでも組んでるか。
参考になった。ありがとう。
0167nobodyさん2006/03/11(土) 06:23:19ID:???
>>166
> そうか、貴方はスクリプトを書いては一々仮想マシン上に移してテストしてるのか。
> 若しくは自動でFTP経由で変更分をアップロードするスクリプトでも組んでるか。

その機械に ssh なり何なりでログインして書くという方法もありますよ?
0168nobodyさん2006/03/11(土) 08:11:37ID:???
>>166
冗談で言ってるんですか?
0169nobodyさん2006/03/11(土) 08:44:56ID:???
>>168
釣れた釣れた
0170nobodyさん2006/03/11(土) 09:48:52ID:???
ち ん ぷ ん か ん ぷ ん
0171nobodyさん2006/03/11(土) 11:10:44ID:???
たまにスレがちょっと伸びてると思ったらprz
0172nobodyさん2006/03/11(土) 16:05:01ID:???
my $mes=$form->Get('MESSAGE');
my $mail=$form->Get('mail');
my $adc;
my $randam=int(rand(15));

if ($randam < 1){ $abc = q| ☆☆☆☆☆ | }
elsif ($randam < 2) { $abc = q| ☆☆☆☆☆ | }
が15行です

☆の部分に最初は顔文字が入って、正常に動いてたのですが
日本語に入れ換えたらエラーが出てうまくいきません

日本語で30文字ぐらい(改行有り)赤色の文字色で表示させたいのですが、どのように記述したらよろしいでしょうか?
puleは全然わからない初心者ですがよろしくお願いします
0173nobodyさん2006/03/11(土) 16:18:52ID:???
>>172
puleはヒドイ・・・
q|〜|は好きな記号をクォートにする構文。
この場合 | を使ってるので文字列中に | があれば問題になる。
sjis使ってるならこれらの文字の下位バイトも問題に。「−ポл掛弓芸旨酢掃竹倒怖掟」(一例)
q{〜}とかq!〜!とかq(〜)とかに変える。
あとはエラーメッセージの最後にエラー行載ってるからそれを参考に。
0174nobodyさん2006/03/11(土) 16:50:30ID:???
>>172
初心者になってから来てください。ここは拾ったCGIの改造を手伝うスレとは違うので。
0175nobodyさん2006/03/11(土) 17:14:12ID:???
あと必要最低限の英単語も覚えた方がいいと思う
酷すぎる
0176nobodyさん2006/03/11(土) 18:40:51ID:???
ABCDEFGH
となっている文字列を
AB,CD,EF,GH
という風に二文字ずつでリストに展開するにはどうすればよいですか?
元の文字列は必ず偶数個です。
0177nobodyさん2006/03/11(土) 18:53:04ID:???
$str = "ABCDEFG";
print join( ' | ' , split( /(..)/, $str ) );
とかしてみたんですが、結果が
| AB | | CD | | EF
となって変な感じです。
AB | CD | EF
となってほしいのですがうまくいきません。
0178nobodyさん2006/03/11(土) 18:54:15ID:???
>>176-177
my $str = 'ABCDEFGH';
print join(',', $str =~ /../g), "\n";
print join(',', unpack '(A2)*', $str), "\n";
0179nobodyさん2006/03/11(土) 19:00:40ID:???
うお、早い。
unpackでできました。
(A2)*なんてできたとは知りませんでした。
どうもありがとうございます。
01801722006/03/11(土) 19:22:03ID:???
>>173>>174>>175さん ありがとうございます

本当なんもわからないのですみませんです・・
見よう見まねで他のファイルと比べてみて適当にいじってしまいました。
少しネットで調べてみたのですが、初歩的なことがわかっていないため何がなになのかわからない状態です・・

>>173さん
sjisを使ってます。一例にあげてくださった文字や、文字列中にはlは使ってません
調べてみても良くわからなかったのですが、
文字化けする文字の後ろに「\」をつけたり「'」で文字列を挟んで対処するような?ことが載っていて
「'」で文字列を挟むことは試してみましたが駄目でした
あんま適当にいじっても良くないかな?試してません・・

レスを参考に少し勉強してみます・・
レスありがとうございましたm(_ _)m
0181nobodyさん2006/03/11(土) 20:02:53ID:???
じゃあスクリプトをeucにするだけで解決する問題だろうね。
0182nobodyさん2006/03/11(土) 20:05:52ID:???
>>180
エスケープの意味とやり方は覚えておかないと全く先に進めないと思う。
0183nobodyさん2006/03/12(日) 01:25:09ID:???
なんかよくわからんけど、適当な法律でも作って、
MVC な cgi 以外配布禁止にしたらどうだろう。
0184nobodyさん2006/03/12(日) 02:24:37ID:???
とりあえず鯖管にでもなって、use strictがないのは全部削除でw
0185nobodyさん2006/03/12(日) 03:08:46ID:???
EUC-JP、UTF-8、Unicode以外のファイルも、テキストだろうがなんだろうがデリだな
0186nobodyさん2006/03/12(日) 05:59:43ID:???
>>184
それだ!!
01871722006/03/12(日) 09:02:35ID:???
>>181>>182さん
昨日見た専門のサイトは、難しいことばかりで
何がなんだかさっぱりでした
皆様の助言は初心者の私でもわかりやすく
検索しやすくとても参考になります。

本当、ありがとうございました
0188nobodyさん2006/03/12(日) 10:16:50ID:???
> 昨日見た専門のサイトは、難しいことばかりで

どこですか?
0189nobodyさん2006/03/12(日) 22:15:07ID:???
\xA1[\xBC\xBD]
で「ー」と「−」を引っ掛けようと思っていたのですが、
なぜだか「−」のみ引っかかりません。

すみませんがご教示いただけますと幸いです。
0190nobodyさん2006/03/12(日) 22:56:12ID:???
>>189
「−」は A1 DD じゃねーか?
0191nobodyさん2006/03/12(日) 22:59:51ID:???
>>188
perlメモというサイトさんだったと思います
0192nobodyさん2006/03/12(日) 23:01:28ID:???
[SHIFT_JIS]
「ー」\x81\x5B
「−」\x81\x7C

\x7Cは「|」

あとは調べられるよな
0193nobodyさん2006/03/12(日) 23:23:10ID:???
>>192
ネタ?
01941892006/03/12(日) 23:41:40ID:???
説明不足ですね。すみません。

文字コードはEUCです。

ttp://72.14.203.104/search?q=cache:rjjAEg1ykyIJ:www.susono.com/~sohei/memo/memo/perl_euc.html+&hl=ja&gl=jp&ct=clnk&cd=1&lr=lang_ja
ここを参考に書いていたのですが、引っかからなかったので
質問させていただきました。

皆さんご教示有難うございます。
これから色々試してみて報告させていただきます。

一つお聞きしたいことがあるのですが、例えば今回のように
「−」と入力して「\x**」というように変換してくれるようなサイト等
があればご教示いただきたい次第です。
度重なる質問ですみません。
01951902006/03/12(日) 23:50:59ID:???
>>194
なんかそのサイトの記述が違ってるような。

'(?:\xA1[\xBC\xBD\xC1])' → ー―〜
'(?:\xA1[\xBC\xDD\xC1])' → ー−〜

だと思われ。
(真ん中の文字が微妙に違う)

> 「−」と入力して「\x**」というように変換してくれるようなサイト等
俺は UNIX で hd コマンドを使ってるけど、 Windows とかサイトはわかんない。すまん。
0196nobodyさん2006/03/12(日) 23:51:39ID:???
> 「−」と入力して「\x**」というように変換してくれるようなサイト等

この程度のことを自分でやろうと思わないのなら、Perl のみならず、
あらゆるプログラム言語から手を引くべきだろうね。

また、仕事でやらされている状況なら、コンビニの店員のバイト、
もしくは、地面掘りの仕事に転職するべきかと。
0197nobodyさん2006/03/13(月) 00:02:18ID:???
>>194
print unpack "H*", "−";
と書いたファイルをeucで保存して実行するだけ。
俺は文字コード表使ってるが。

>>196
初心者スレに居ると身体に悪いぞ。
0198nobodyさん2006/03/13(月) 00:02:57ID:???
>>194
あるよ・・・俺の個人サイトに・・・
0199nobodyさん2006/03/13(月) 01:42:55ID:???
>>195>>197
非常に参考になるアドバイス、誠に有難うございました。
後述しますが、おかげさまで変換プログラムで確認できる
ようになりました。
この場をお借りし御礼申し上げます。
文字コード表は後で探してみたいと思います。

>>196
おっしゃるとおりです。
返す言葉がございません。
反省点を踏まえ、プログラムを自分で作成してみました。


皆様の一つ一つのアドバイスを無駄にせぬよう、
自分でもできることをやってみました。
皆様には全く不必要のものかとは思いますが、今後私と
同じような問題を抱えた方がこのスレッドを見たときに少し
でも役に立てるよう、即席ではございますが変換プログラム
を作ってみました。晒しておきます。

ttp://whatever.say.jp/char_unpack.cgi
0200nobodyさん2006/03/13(月) 02:39:54ID:???
晒すってのは、ソースコードを晒すことだぽ。

http://b.hatena.ne.jp/entrylist?url=http://whatever.say.jp%2F
http://b.hatena.ne.jp/entrylist?url=http%3A%2F%2Fwhatever.say.jp%2F&sort=eid

なんか興味深いね。
0201nobodyさん2006/03/13(月) 07:53:39ID:???
>>199
お前・・・
0202nobodyさん2006/03/13(月) 09:08:48ID:???
ttp://whatever.say.jp/
って閉鎖されてるようだけど何のHP?
0203nobodyさん2006/03/13(月) 09:48:40ID:???
>>202
http://b.hatena.ne.jp/entry/http://whatever.say.jp/program.html
http://b.hatena.ne.jp/entry/http://whatever.say.jp/program/snap_shot/
http://whatever.say.jp/weblog/
0204nobodyさん2006/03/13(月) 11:11:11ID:???
発言からみると今まで文字コードなんて気にしなかったWindowsプログラマか
02051492006/03/14(火) 11:00:15ID:K408BhkZ
まいどです。>>149です。
前回どこよりもすばやく的確な解答を得ることができたので、またまた頼らせていただきます。

前回は「日付からスラッシュを抜きそれでソートする方法」等を教えていただいたのですが、それを別の場所でも利用しようと考えました。
データの自動非表示とでも言えばいいのかな?指定日になったら自動で一部データを非表示にするという物です。
考えとしては以下のような感じです。
1.表示非表示はチェックボックスで行う。チェックが入っていればその情報を表示という感じで。
もちろん、その変数は空白か1が入り、1ならcheckedとする。
2.CGIに良くありがちな日付取得より年月日を取得する。
3.掲載期限とシステム日付を比較し、「システム日付≧掲載期限」であれば表示チェックを空白にする
4.勝手に消えてくれてウマー
こんな感じです。
イベント情報掲載とか新譜発売情報なんかにも応用が利くんじゃないかと。
で、ない頭をフルに使って以下のようにやってみました。もちろんですが、元となるCGIや他のCGIから切り張りしたものです(;´∀`)
保存してある変数は、不必要だと思うものは消しちゃったので、上下でずれがあるかもしれませんが、脳内変換お願いします。

・・・
で、下にソース貼り付けたら文字数オーバーしたので、とりあえずここまで。
02061492006/03/14(火) 11:00:39ID:K408BhkZ
問題のソース・・・
----------------
sub check{
$cview2 = "";
&get_time;
open(IN,"$logfile") || &error("Open Error : $logfile");
@lines = <IN>;
close(IN);
  foreach $lines (@lines) {
  ($no,$year1,$month1,$day1,$name,$sub,$com,$cview,$climit〜〜) = split(/<>/,$lines);
  chomp;
  #日付チェック手順1 : 日付を変換
  if($climit){
    $climit2 = sprintf('%04d%02d%02d', split('/', $climit)) ;
    #日付チェック手順2 : 日付を比較
    if ($sysdate2 >= $climit2) {
     $_ = "$no<>$year1<>$month1<>$day1<>$name<>$sub<>$com<>$cview2<>$climit<>〜〜\n";
     print OUT $_;
    }#if閉じ
  }#if閉じ
  }#foreach閉じ
close(OUT);
}
----------------
しかし、変化無しです。「$cview」は1のままです。
ルーチンの実行はライブラリ読み込みの次ぐらいに行っているので、CGI実行で必ず動作するはずなのですが…

どこが間違っているのでしょうか?採点お願いします。
0207nobodyさん2006/03/14(火) 11:39:47ID:???
$sysdate2 >= $climit2

int($sysdate2) >= int($climit2)
にしたらどうなる?
02081492006/03/14(火) 11:48:44ID:K408BhkZ
すばやい返答ありがとうございます。

>int($sysdate2) >= int($climit2)
うーん。変化無しです。

というか、変化しているかどうかがまったくわかんないですよね。
どうにかして変数などがちゃんと反映されているかって確認できないですかね?
0209nobodyさん2006/03/14(火) 11:50:57ID:???
> 前回どこよりもすばやく的確な解答を得ることができたので、またまた頼らせていただきます。

仕事かよ。
0210nobodyさん2006/03/14(火) 11:52:11ID:???
> どこが間違っているのでしょうか?採点お願いします。

採点を求めているわけだから、採点してあげればいいんだよね。
正常に動作するコードは不要と。
0211nobodyさん2006/03/14(火) 11:53:18ID:???
> 4.勝手に消えてくれてウマー

藻前が勝手に消えてくれると(゚д゚)ウマー
0212nobodyさん2006/03/14(火) 12:11:21ID:???
> 前回どこよりもすばやく

マルチだったのかよ
0213nobodyさん2006/03/14(火) 12:41:09ID:???
もうこういうのはスルーしれ
02141492006/03/14(火) 14:29:16ID:K408BhkZ
もう春休み?
とりあえず、釣りかもしんないけど、マジで解答ほしいので、マジレスしてみる。

>>209
何ゆえその1行で仕事と判断?丁寧に記入するヤツはすべて仕事なの?
>>210
確かに、これはおかしい。ごめんね。採点じゃなくて、校正・訂正・指導、まぁ何でも良いけど、動くように教えてplz
>>211
あんたのような揚げ足取りが消えてくれた方が2chシステム的にはウマーだと思うが?
>>212
某Q&Aサイトで質問→解答なし。→質問削除→さらに別のQ&Aサイトで質問→有効回答なし。→質問終了→2chに書き込み→即日解答。しかもビンゴ!
どこがマルチよ?

厨房か工房かしらんが、言葉遣いもそれなりにあわせてみたよ。
0215nobodyさん2006/03/14(火) 14:39:37ID:???
>>214
つ はてな掲示板「いわし」
0216nobodyさん2006/03/14(火) 14:52:48ID:???
>>214
> 某Q&Aサイトで質問→解答なし。→質問削除→さらに別のQ&Aサイトで質問→有効回答なし。→質問終了→2chに書き込み→即日解答。しかもビンゴ!
どう見てもマルチです、本当に(ry
そういう場合は、ここで聞いたけど回答が無かったと、元の質問を示すのが慣例。
もしくは事前に断わるか。
0217nobodyさん2006/03/14(火) 14:58:34ID:???
>>216
その言い分を真に受けるとすると、前の質問が close してから質問してるみたいだし、
そゆのはマルチとは言わないんじゃね?
0218nobodyさん2006/03/14(火) 15:03:25ID:???
>>217
それなら「他のところで質問をしたけど答えが出なかった」だけでもいいから、
事前に断わるべきだろう。

答える奴だって人間だから、感じ悪いと思う奴だっているよ。
それぐらい、常識で判断してほしい。
0219nobodyさんNGNG
> chomp;

これ何か意味あんのか。
つーかYahoo掲示板でも行けよカス
0220nobodyさん2006/03/14(火) 15:20:39ID:???
>>218
事前に断りがあるかどうかは別にして、
>>212
>> 前回どこよりもすばやく
>マルチだったのかよ
この1行でマルチと決め付ける必要性も無いと思うがな

>>212 =>>218
だった場合、オマエに常識を語る資格はそうないと思われ
0221nobodyさん2006/03/14(火) 15:27:37ID:???
>>220
違うけど。何勝手に決め付けてんの?
0222nobodyさん2006/03/14(火) 15:33:01ID:???
>>205
質問だけ書いとけばいいのに余計な一言書くから・・・
0223nobodyさんNGNG
この殺伐とした雰囲気最高だよな
馬鹿と馬鹿が煽り合ってんの
見てて楽しいからもっとやれよ
0224nobodyさん2006/03/14(火) 16:03:40ID:???
と、馬鹿が申しております。
0225nobodyさん2006/03/14(火) 16:14:10ID:???
>>222
そこを除いても殺意を覚えるのに十分な書き込み内容だと思うけどw

0226nobodyさん2006/03/14(火) 16:16:31ID:???
>>225
2行目まで読んだので知らなかった
0227nobodyさん2006/03/14(火) 16:47:10ID:???
こうして結局答えは出ないのでした。
0228nobodyさん2006/03/14(火) 16:54:23ID:???
後の曹操である
0229nobodyさん2006/03/14(火) 17:04:47ID:???
俺は >>205 が特に礼節を欠いているとも思わないし、
答えてあげたい気持ちは満々なのだが、
いかんせん質問の意味がさっぱりわからないので答えようがない。
0230 ◆TWARamEjuA NGNG
本7?
0231nobodyさん2006/03/14(火) 20:12:03ID:???
&autolink($comment)
こんな感じので、コメント中にURLが含まれる場合
そのURLへのリンクを作成して
表示される文字列はURLではなく
「外部リンク」とか任意の文字列にしたい場合はどのようにすれば良いのでしょうか?
0232nobodyさん2006/03/14(火) 20:28:50ID:???
sub autolink {} の中を晒して下さい。
0233nobodyさん2006/03/14(火) 20:48:54ID:???
autolink{}の中で =~ s/https?:\/\/〜/<a href="〜">$1</a>/gi みたくなってる部分があると思うが、
</a>直前の $1 とか $2 の部分を 外部リンク とでも書き換えてください
0234nobodyさん2006/03/14(火) 23:21:54ID:???
なるほど、本7の仕業だったのか。
あいかわらずのスキルなんでつね。w
0235nobodyさん2006/03/14(火) 23:26:28ID:???
本7って?
0236nobodyさん2006/03/14(火) 23:30:36ID:???
>>235
uPD9aFm9hI でぐぐれ。
0237nobodyさん2006/03/14(火) 23:31:05ID:???
色んな意味で有名になった人。
0238 ◆aiY4htt2.2 NGNG
(´-`).。oO(こっちのトリップで遊んでいたよなぁ。。。)
0239 ◆AnalSexRiQ 2006/03/15(水) 15:25:51ID:???
こっちじゃね
0240nobodyさん2006/03/19(日) 10:45:53ID:???
ちょっと質問。

$a = "あいうえおかきくけこ$x{'TEST'}たちつてとなにぬねの";
の場合と
$b = "あいうえおかきくけこ".$x{'TEST'}."たちつてとなにぬねの";
とか
$c = 'あいうえおかきくけこ'.$x{'TEST'}.'たちつてとなにぬねの';
って感じで連結するのはどれが一番お薦め?

連結をあまり好ましくないっぽい書き方してる書き込みを昔見た気がするので、
$aのやり方の方がいいのかなとも思ったけど、
負荷的にはなるべくシングルクォーテーション使ったほうがよさそうだしで、ちょっと迷ってまっす。
ひょっとしたら連結の方が負荷高かったりしたら元も子もないし・・・
0241nobodyさん2006/03/19(日) 11:08:41ID:???
そんな意味不明なことせず、MVC な構成にするのがオススメ。
0242nobodyさん2006/03/19(日) 11:31:18ID:???
>>240
適材適所です。
頑なに法則を守っていると可読性が落ちたりします。
速度を考えるなら、連結自体から見直せば良いかもしれません。
0243nobodyさん2006/03/19(日) 11:52:52ID:???
スピード重視と言うことなら、Perl なんか使わずに
strcat しまくるべきだな。
0244nobodyさん2006/03/19(日) 12:12:44ID:???
>>240
2番目と3番目は内部では全く同じコードとして実行される。
1番目との比較は、実装や環境に依存。
なので、自分の対象とする環境でベンチマークとりなされ。
0245nobodyさん2006/03/19(日) 12:50:57ID:???
>>244
> 2番目と3番目は内部では全く同じコードとして実行される。

クオートの違いがあるので、全く同じであるはずがないと思われ。
0246nobodyさん2006/03/19(日) 13:26:25ID:???
>>245
そう思うならコード覗いてみ
0247nobodyさん2006/03/19(日) 13:37:59ID:???
ダブルクォートだと変数の判定もする分処理的には遅いんじゃないの?
0248nobodyさん2006/03/19(日) 14:01:44ID:???
基本すらわかってない人間が質問に答えている糞スレはここでつか?

>>246
> そう思うならコード覗いてみ

で、どの部分で同じ処理をしているのか、具体的に提示してよ。
0249nobodyさん2006/03/19(日) 15:23:23ID:???
RSSの取得がうまくいかない

ttp://allabout.co.jp/career/cgiperl/closeup/CU20050131A/index3.htm

ここ参考にしてそのままコピペしてもエラーになるのはなんで?
モジュールはちゃんとインストールされてる
0250nobodyさん2006/03/19(日) 15:47:58ID:???
>>1

1: 自分はこういう事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。
0251nobodyさん2006/03/19(日) 15:56:26ID:???
>>244-248
よーしパパ暇だから両者の言い分を解説しちゃうぞー

>>244の言い分
$ perl -MO=Terse -e 'qq[hoge].$x.qq[fuga]'
$ perl -MO=Terse -e 'q[hoge].$x.q[fuga]'
を見るとバイトコードレベルで行われる処理は同じである。

>>245の言い分
パーサが変数の展開を考慮しなくてはいけなくなるのだから、
""の方が必要な処理は多いはずだ。


で、5.8.7でバイトコードを覗いてみると、""はパース時に中に変数展開が
含まれていた場合のみ連結を行うバイトコードに変換されるので、
そんなに気にする必要はないと思われる。古いバージョンではどうか知らないけど。
それよりも可読性等を重視するべきだと思う。
0252nobodyさん2006/03/19(日) 16:03:07ID:???
> よーしパパ

こんな古い言葉使ってる老人って・・・。
0253nobodyさん2006/03/19(日) 17:56:12ID:???
なるほどねー。
\"でエスケープした場合も実は対して気にするレベルじゃ無さそうなのかな。
0254nobodyさん2006/03/19(日) 17:59:18ID:???
そもそも文字列処理の速度で悩むような案件に perl なんか使うのかなぁと思う。
0255nobodyさん2006/03/19(日) 18:10:48ID:???
でも規模が大きいとか、処理が重いとか、ゲームCGIだったりとかで、
負荷が馬鹿にならないレベルだと、ちょっとの差が大きな違いになりそうじゃない?
0256nobodyさん2006/03/19(日) 18:12:55ID:???
あと、セキュリティの問題からmod_php使ってるレン鯖は少ないらしいから、
モジュール同士、CGIで動作のどちらでやっても速度はperl>phpになるだろうし、
perl以外に良い選択肢ってそもそも有るんだろうか。
Cは流石にだるいし。
0257nobodyさん2006/03/19(日) 18:15:33ID:???
お前らおもしろいな
0258nobodyさん2006/03/19(日) 18:15:59ID:3oCqRbiL
ならない。
0259nobodyさん2006/03/19(日) 18:22:14ID:???
>セキュリティの問題からmod_php使ってるレン鯖は少ないらしいから、

phpは軽い早いって嘘って事?
0260nobodyさん2006/03/19(日) 18:27:56ID:???
> 負荷が馬鹿にならないレベルだと、ちょっとの差が大きな違いになりそうじゃない?

大きな違いがある場所では、xs とか書けばよいのでは?
んで、そんなものを鯖 1 台でさばくんかね?

> phpは軽い早いって嘘って事?

一部嘘かもね。ぐぐればいろいろベンチあるぞ。
0261nobodyさん2006/03/19(日) 18:36:18ID:???
" と ' の速度差とかに気を遣う暇があったらもっと有意義なところに頭を使うべき。
0262nobodyさん2006/03/19(日) 18:46:28ID:???
ま、初心者でもできると言う意味じゃお手軽だし別に気にしてもいいとは思うがねw
0263nobodyさん2006/03/19(日) 18:49:15ID:???
あらかじめバイトコードに変換しときゃ同じだしな。
perlcc -B
0264nobodyさん2006/03/19(日) 21:10:06ID:???
別に制限されるものでもないし、やりたいならやれば?
ただ、眉毛剃ると空気抵抗が減って走るの早くなるよ、
ってのと同じレベルの話なわけだが。
まぁ、初心者でもできるしお手軽だわなw
0265nobodyさん2006/03/19(日) 21:11:40ID:???
意味のない煽りばかりですね
0266nobodyさん2006/03/19(日) 21:22:33ID:???
水泳選手はすね毛とかの体毛全部剃るけどなw
0267nobodyさん2006/03/19(日) 21:27:36ID:???
で、水泳初心者がすね毛とかの体毛全部剃るのに意味があるのかと
0268nobodyさん2006/03/19(日) 21:28:35ID:???
きもちぃぞ
0269nobodyさん2006/03/19(日) 21:41:19ID:???
>>268
結局、そういうことだよね。

' ' の方が速くなる気がして気持ちぃー (気のせい) って香具師はそうすりゃいいし、
開発効率&可読性を取るぜー (現実的) って香具師はそうすりゃいい。
0270nobodyさん2006/03/19(日) 21:42:41ID:???
ぶっちゃけ可読性は変わらない気がする。
どうせ色分けしてるし。
0271nobodyさん2006/03/19(日) 21:48:41ID:???
春だな
0272nobodyさん2006/03/19(日) 21:56:33ID:???
ああ春だ
0273nobodyさん2006/03/19(日) 22:00:31ID:???
と言い出す人が春真っ盛りの場合が多いです
0274nobodyさん2006/03/19(日) 22:29:27ID:???
それはそうかも
0275nobodyさん2006/03/19(日) 22:33:21ID:???
> あらかじめバイトコードに変換しときゃ同じだしな。
> perlcc -B

こういう運用ってしてるの見たことがないなぁ。
0276nobodyさん2006/03/19(日) 22:39:47ID:???
mod_perl使えってことでは
0277nobodyさん2006/03/19(日) 22:47:43ID:???
> あらかじめバイトコードに変換しときゃ同じだしな。
> perlcc -B



> mod_perl使えってことでは

が同値であるということにしたいのですか?

0278nobodyさん2006/03/19(日) 22:55:36ID:???
、ということにしたいのですね
0279nobodyさん2006/03/19(日) 22:55:54ID:???
>>275
mod_perlも用意してなかった環境でチャットスクリプトを動かすときに一度だけ実際にやったことがある。
もう忘れたけどtimeを取ってみたら確か200ms位が80ms位になったと思った。
0280nobodyさん2006/03/19(日) 22:57:07ID:???
>>256
ヒント:海外鯖
つか日本でもいっぱいあるのにな。
0281nobodyさん2006/03/19(日) 23:04:07ID:???
>>279
ふーん。
0282nobodyさん2006/03/20(月) 05:37:24ID:???
>>280
他の人のデータ見れちゃうのにいいの?
自分のも見られちゃうよ?
0283nobodyさん2006/03/20(月) 10:59:07ID:???
>>282
mod_php = 他の人のデータ見れちゃう
という事なのですか?
0284nobodyさん2006/03/20(月) 11:06:50ID:???
ユーザごとに apache を独立して動かせば問題ないよ。
0285nobodyさん2006/03/20(月) 11:19:22ID:???
ユーザーごとにマシンを独立して割り当てればもっといいよ。
0286nobodyさん2006/03/20(月) 11:32:49ID:???
それ何て専用サーバ?
0287nobodyさん2006/03/20(月) 12:26:15ID:???
mod_perlとmod_phpの区別がついていない奴がいるな。
0288nobodyさん2006/03/20(月) 12:34:37ID:???
open FILE,"<","hoge.cgi";

open FILE,"< hoge.cgi";
の違いはないみたいだけど正しいのはどっち?
0289nobodyさん2006/03/20(月) 13:19:12ID:???
>>288
つ perldoc -f open
0290nobodyさん2006/03/20(月) 16:59:39ID:f3pQ7Duw
すみません、お聞きしたいのですが、

24時間(0時)に一度処理を行うというcgiを作りたいのですが、
どうすればいいでしょうか?

多分スレッドなどを使うことになるとは思うのですが、
その処理が動いている間は、同じ処理が二重で動かないようにしたいです。

シーケンスとしては以下のようなものをイメージしているのですが・・・。

main {
ボタンを押す;
if(既にスレッドが立ち上がってなかったら){
スレッドで th 実行;
}else{
print "既に起動中です。";
}
}

sub th{
while(1){
if(0時になったら){
処理実行;
}
}
}

よろしくお願いします・・・m(_ _)m
0291nobodyさん2006/03/20(月) 17:04:05ID:???
>>290
つ cron
0292nobodyさん2006/03/20(月) 17:14:33ID:f3pQ7Duw
>>291
どもです!

すみません、環境を書いていませんでした・・・。
環境が開発がWindows環境で、実際に稼動させるのがLinuxなんですよね。
テストの面などからできれば、環境に依存しない方法はないでしょうか?
0293nobodyさん2006/03/20(月) 17:18:02ID:???
Windows でも cron 使えますよ。
ただ、あなたの現状では使えるようになるまで莫大な時間を要するでしょうけど。
0294nobodyさん2006/03/20(月) 17:26:03ID:???
Windows なら「タスク」とかも使えるんじゃないかな。
いずれにしろCGI&スレッドでやるべき仕事じゃあないでしょ。
0295nobodyさん2006/03/20(月) 17:28:55ID:???
> テストの面などからできれば、環境に依存しない方法はないでしょうか?

ってことで、

> Windows なら「タスク」とかも使えるんじゃないかな。

ってのはだめだとおもう。
0296nobodyさん2006/03/20(月) 17:30:39ID:???
cgiでやるべき仕事じゃないと言うけど、
アクセスした時にtimeで時間取得して、設定時間以上経ってたら
実行+次回の実行時間(全開の実行時間+間隔)に書き換えでダメなん?
0297nobodyさん2006/03/20(月) 17:32:24ID:???
> アクセスした時にtimeで時間取得して、設定時間以上経ってたら
> 実行+次回の実行時間(全開の実行時間+間隔)に書き換えでダメなん?

それって、0 時に複数のアクセスがあった場合どうなる?

やっぱ初心者が初心者の質問に初心者知識で答えるスレだね。
0298nobodyさん2006/03/20(月) 17:38:18ID:???
まず、実行予定時間の書き換えしてから、引き続き処理なら問題なさそうに感じるけど、
そんなにシビアに考えないといけないもの?
0299nobodyさん2006/03/20(月) 17:41:52ID:???
>>298
> まず、実行予定時間の書き換えしてから、引き続き処理なら問題なさそうに感じるけど、

nfs 上にファイルがあったらどうなるだろう。
0300nobodyさん2006/03/20(月) 17:47:20ID:???
nfs使った事無いのでどんな影響が出るかはいまいち判らないや。
だけど、考慮しないといけないものなの?
普通にデータをtmpに出力して入れ替えるなら気にしなくて良さそうに感じるけど。
0301nobodyさん2006/03/20(月) 17:48:10ID:???
感じるのは自由です。
0302nobodyさん2006/03/20(月) 17:50:41ID:???
どんな問題があるのか説明希望ー!
03032902006/03/20(月) 18:30:28ID:f3pQ7Duw
うーむ。なかなかムズかしそうですねぇ・・・困った・・・。

>>296
>>298
の両氏のやり方でも、機能上は構わないと思うのですが、
なんかお客さんにケチつけられそうなので、
できればユーザー任せなやり方は避けたいのです。

また>>297氏のようなパターンも考えなくてはいけないので・・・。
0304nobodyさん2006/03/20(月) 18:37:31ID:???
>>303
藻前が VMware Player で実験環境作れば済むはなししではないよね。
Perl on Windows なり Cygwin でどれだけ工夫するかってのが争点だもんね。w
0305nobodyさん2006/03/20(月) 19:59:01ID:???
データには前回実行した日付を記録
アクセスがあったときにファイルロックする
データファイル読む
実行時日付と前回の日付が異なれば実行
処理
ロック解除


普通の処理ジャマイカ
0306nobodyさん2006/03/20(月) 21:47:27ID:???
1 日一回の処理のために毎回ロックとかウケル。
0307nobodyさん2006/03/20(月) 21:48:19ID:???
それのどこがPerlのコーディングに関する質問なんだ?
そんなことも判断できない奴に委託しているとは、客が可哀想すぎる。
0308nobodyさん2006/03/20(月) 21:57:43ID:???
>306
その一回の処理のときに複数実行されたらどうすんだヴァカ
0309nobodyさん2006/03/20(月) 22:02:30ID:???
>>308
もの凄い馬鹿はスルー汁
0310nobodyさん2006/03/21(火) 00:35:15ID:???
>>297
>>299
いよう、久しぶり。
0311nobodyさん2006/03/21(火) 02:12:17ID:???
凄い難癖のつけ方だったな。
説明希望されると居なくなったし。
0312nobodyさん2006/03/22(水) 16:11:05ID:1dP8qtcF
Catalyst 5.66 をインストールして、チュートリアル通りにテストスクリプトを作成。
テストhttpサーバ上では問題なく動作したのですが、apacheで動作させようとしたところ
Internal Server Error が出ます。

原因は ./script/app_cgi.pl を起動すると

Use of uninitialized value in string ne at /Library/Perl/5.8.6/Catalyst/Engine/CGI.pm line 63.
Use of uninitialized value in numeric eq (==) at /Library/Perl/5.8.6/Catalyst/Engine/CGI.pm line 83.
Use of uninitialized value in pattern match (m//) at /Library/Perl/5.8.6/Catalyst/Engine/CGI.pm line 128.

がContent-type より先に出力されている模様。。。

どうすればこの「Use of uninitialized value」消せますか?教えてエロ委人。
0313nobodyさん2006/03/22(水) 19:12:48ID:???
-W 付で実行してないかい?

もし -W で動作したいなら CGI.pm の該当行の初期化されてない変数への参照部分を
書き換えてやればいいかと思う
0314nobodyさん2006/03/22(水) 19:53:47ID:???
-w外せば出なくはなると思うが、該当行を見た感じ
これらの環境変数が渡ってこないapacheも珍しい
気がする。

63 last PROXY_CHECK if $ENV{REMOTE_ADDR} ne '127.0.0.1';

83 if ( $ENV{SERVER_PORT} == 443 ) {

128 last PROXY_CHECK if $host !~ /localhost|127.0.0.1/;

$hostの値を入れてるのは

113 my $host = $ENV{HTTP_HOST} || $ENV{SERVER_NAME};

実行環境おかしくない?
0315nobodyさん2006/03/22(水) 20:12:30ID:???
もしかして・・・コンソールでテストしたとか?
0316nobodyさん2006/03/22(水) 20:37:57ID:???
みんなで、Catalyst 使って遊ぼうぜ。

0317nobodyさん2006/03/22(水) 22:05:59ID:???
警告はSTDERRに出るので、apacheのエラーログに書かれるだけだし、
internal server errorになってる原因は別にあると見た。

apacheのエラーログをちゃんとさらした方が回答つきやすいと思われる。
コンソールで実行してもいいけどうまく環境あわせて作ってやらないと
意味ないよ。
0318nobodyさん2006/03/23(木) 18:41:32ID:b3UifQ+V
<weblog1>
<weblog name="ほげ山ほげ男" url="http://hoge.com" where="saitama" />
<weblog name="ほげ川ほげ子" url="http://hoge.com/hoge/hoge.html" where="nagano" />
<weblog name="ほげ本ほげ太" url="http://hoge.com/hoge3/hoge.html" where="gunma" />
</weblog1>

↑から、name(氏名)とurlのみを抽出するようにするにはどのように書いたらよいでしょうか?

具体的には、一行ごとに読み込んで↓のような形にしたいのですが。
ほげ山ほげ男 → http://hoge.com<;br>
ほげ川ほげ子 → http://hoge.com/hoge/hoge.html<;br>
ほげ本ほげ太 → http://hoge.com/hoge3/hoge.html<;br>
0319nobodyさん2006/03/23(木) 19:07:35ID:???
/<weblog name="(.*)[^"]" url="(.*)[^"]" where="(.*)[^"]" \/>/i
$weblog_name = $1;
$weblog_url = $2;
$weblog_where = $3;

すげぇ適当w
0320nobodyさん2006/03/23(木) 20:28:26ID:???
>>319
初心者乙。
0321nobodyさん2006/03/23(木) 20:35:16ID:???
>>318
#!/usr/bin/perl
m|^\s*<weblog\s+name="([^"]*)"\s+url="([^"]*)"\s[^>]*/>|
  && print "$1 → $2<br>\n" while <DATA>;
__DATA__
<weblog1>
<weblog name="ほげ山ほげ男" url="http://hoge.com" where="saitama" />
<weblog name="ほげ川ほげ子" url="http://hoge.com/hoge/hoge.html" where="nagano" />
<weblog name="ほげ本ほげ太" url="http://hoge.com/hoge3/hoge.html" where="gunma" />
</weblog1>
03223182006/03/23(木) 20:36:55ID:???
属性が増えたら、そのたびに正規表現書き換えるんでしょうか?
馬鹿ばっかりですね。ここ。
0323nobodyさん2006/03/23(木) 20:39:22ID:???
>>322
だったら書き込むな
0324nobodyさんNGNG
この流れwebprogらしくてイイヨイイヨー
0325nobodyさん2006/03/23(木) 21:54:35ID:???
>>322はニセじゃないの?

長くてもいいんならホレ
while (<DATA>) {
@pair = split / /;
foreach (@pair) {
s/"//g;
($name, $value) = split /=/;
print "$value → " if ($name eq "name");
print "$value<br>\n" if ($name eq "url");
}
}
exit;
__DATA__
<weblog1>
<weblog name="ほげ山ほげ男" url="http://hoge.com" where="saitama" />
<weblog name="ほげ川ほげ子" url="http://hoge.com/hoge/hoge.html" where="nagano" />
<weblog name="ほげ本ほげ太" url="http://hoge.com/hoge3/hoge.html" where="gunma" />
</weblog1>
0326nobodyさん2006/03/23(木) 21:59:32ID:???
なんで素直にXML*を使わないのかと小一時間
0327nobodyさん2006/03/23(木) 23:05:38ID:???
素直にXML*を使ったお手本を書けば、
わざわざ小一時間かけなくともすべて解決なのでは。
0328nobodyさん2006/03/23(木) 23:07:22ID:???
それだとXMLLLLLLとかにしかマッチしないからです。
0329nobodyさん2006/03/23(木) 23:19:38ID:???
お前らホントに小学生レベルだな



俺は幼稚園児だから、このスレの内容は役に立つぜ
0330nobodyさん2006/03/24(金) 00:14:01ID:???
>>329
0331ヽ(´ー`)ノ ◆.ogCuANUcE 2006/03/24(金) 00:14:44ID:???
use XML::Simple;

my $xml = XMLin('test.xml');
my %hash = map { $_ => $xml->{'weblog'}->{$_}->{'url'} } keys %{$xml->{'weblog'}};

これでいいんか。
0332nobodyさん2006/03/24(金) 01:37:23ID:???
ごめ
普通に読めません
解説おながいm(_ _)m
0333ヽ(´ー`)ノ ◆.ogCuANUcE 2006/03/24(金) 04:53:24ID:???
解説も何も、XML::Simple 使ってるだけなんだが…。
何が分かんないの?
0334nobodyさん2006/03/24(金) 07:11:35ID:???
なにがわかんないのかわかんない。
0335nobodyさん2006/03/24(金) 08:44:36ID:???
while(<DATA>){
/^<weblog .*\/>/ or next;
my ($name) = /name="([^"]+)"/;
my ($url) = /url="([^"]+)"/;
print "$name → $url<br>\n";
}

こんなのでいいじゃん。
0336nobodyさん2006/03/24(金) 14:43:34ID:???
WebProgってモジュール使えない奴ばっか
0337nobodyさん2006/03/24(金) 15:23:55ID:FdXgD3At
$num = 200 * 0.575;
print "A:".$num."\n";
$num = int($num);
print "B:".$num."\n";

上記のスクリプトの出力が
A:115
B:114
になってしまうのですが
どうしてでしょうか?
0338ヽ(´ー`)ノ ◆.ogCuANUcE 2006/03/24(金) 15:33:13ID:???
>>337
そういうもん。これが一番良くまとまってるかな。
ttp://d.hatena.ne.jp/babie/20051212
03393372006/03/24(金) 15:40:10ID:FdXgD3At
>>338
サンクスです
use Math::BigFloat;
を使うことにしました
0340nobodyさん2006/03/24(金) 16:27:21ID:vZMLwEvx
# ここは shift じゃないとダメ。
my $random_code = shift @lines;
chomp $random_code;

# 投稿コードとログのコードを比較して合ってなければ
if ($FORM{'submit_code'} ne $random_code) {
&Error("Error: あなたの直前に書き込んだ人がいるため,投稿コードが更新されています。<BR>リロードしてからもう一度書き込んで下さい。");
}

# 新しい投稿コードを生成。srand は既にやってあるので省略
my $new_random_code = int(rand(100000));

これをkentweb対応にしたいんだけど何処を変えればいいんですか?
教えてください。
0341nobodyさん2006/03/24(金) 17:25:06ID:???
kent に教えてもらうと良いと思われ。
0342長猫@MFC屋さん2006/03/25(土) 00:17:26ID:???
>>340
直すポイントは3つです。

1.書き込みをログファイルに保存するとき
 ⇒ログファイルの先頭行に、ランダムな文字列の行(これを投稿コードとします)を保存するようにして下さい。

2.書き込みを画面に表示するとき
 ⇒ログファイルの先頭行から1.のランダムな文字列の行(投稿コード)を読み出し、
 入力フォーム内にhiddenパラメータとして埋め込んで下さい。

3.書き込み実行して、フォーム内容をチェックするとき
 ⇒ログファイルの先頭行から投稿コードを読み出し、
 2.で入力されたhiddenパラメータと一致するか判定して下さい。
 一致しなかったら
 "Error: あなたの直前に書き込んだ人がいるため,投稿コードが更新されています。
 リロードしてからもう一度書き込んで下さい。"
 等のエラー画面を表示するようにして下さい。
 一致したら、また新たな投稿コードを作成して、ログファイルの先頭行に保存して下さい。

以上。
0343nobodyさん2006/03/25(土) 05:40:14ID:???
<FORM method="POST" action="xxx.cgi">
・ほにゃらら
<input type="test" name="ほにゃらら" size="30" value="">
</FORM>
-----------------------------------------
shtml(SSI)に、フォームメールのスキンを書いてます。
<!--#echo var="環境変数"-->これを、valueの中に
入れたいんですが、そのまま書いたらエラーでました。
perlだとvalue=$ENV{'環境変数'}でいけるんですが。
よろしくお願いします。
0344nobodyさん2006/03/25(土) 06:34:14ID:???
>>343
それ、Perl の質問じゃなくて SSI の質問じゃん。スレ違い。
0345nobodyさん2006/03/25(土) 12:00:18ID:???
しかも、そんなことやったら、漏れみたいな XSS 指摘厨にさわがれる罠。
0346nobodyさん2006/03/26(日) 21:51:04ID:???
>>251
わぁ、ぱぱ凄いやぁ
0347nobodyさん2006/03/28(火) 12:50:58ID:???
月曜日質問なかったのか
0348nobodyさん2006/03/28(火) 16:29:29ID:giiJxdDY
<input type=checkbox name=ch1 value="1,">あ
<input type=checkbox name=ch2 value="2,">い
<input type=checkbox name=ch3 value="3,">い
<input type=checkbox name=ch100 value="100,">ん

このような感じで沢山のチェックボックスを元に、formでPOSTした時、
チェックされている全てのチェックボックスのvalue値を繋げて、
"1,2,3,4,〜100,"のような形で、$strにいれたい場合、
$str = $in{'ch1'}.$in{'ch2'}.$in{'ch3'}.…$in{'ch100'};
のような表記しかないのでしょうか?

チェックボックスの数は変動するので、
forを使って、もっと綺麗に書けないものかな?と、思いましたので。
0349nobodyさん2006/03/28(火) 16:41:50ID:???
>>348
そこまで解ってるならなぜ書けない…
$str = '';
$str .= $in{"ch$_"} for 1..100;
0350nobodyさん2006/03/28(火) 16:50:44ID:???
チェックボックス数の変動に影響されないように、と思って書いてみたら
$str = join "", map $in{$_->[0]}, sort {$a->[1]<=>$b->[1]} map [$_,/(\d+)/], grep /^ch\d+/, keys %in;
うざくなった・・・orz
0351nobodyさん2006/03/28(火) 17:33:05ID:???
ちゃんとインデントして書けば、そんなにウザくなくね?
0352nobodyさん2006/03/28(火) 17:50:12ID:???
倒置の書き方って結構覚えておくとお得?
解説してるサイトが結構少なくて、コード見てなんとなく判るようにはなったんだけど、
基本がなってないからちょっと不安だったり。
0353nobodyさん2006/03/28(火) 18:13:47ID:???
倒置って何?
0354nobodyさん2006/03/28(火) 18:30:55ID:???
オレオレ用語
0355nobodyさん2006/03/28(火) 20:08:02ID:???
print "hoge" if $a;
って感じ?
0356nobodyさん2006/03/28(火) 22:34:04ID:???
print "$_\n" foreach (@array);
とかね。

Perlの旨味がホンのちょっとだけど染みこんでると最近感じるようになった。
0357nobodyさん2006/03/28(火) 22:36:22ID:???
foreach
0358nobodyさん2006/03/28(火) 23:34:57ID:???
後置のことか
0359nobodyさん2006/03/29(水) 05:38:58ID:???
>>356
括弧を書いてるならまだホントの旨みを味わってない。
Perlの真骨頂は如何に少ないタイプでコーディングするかにある。
0360 ◆aiY4htt2.2 NGNG
あーはいはい♪
0361nobodyさん2006/03/29(水) 07:17:11ID:???
> print "$_\n" foreach (@array);

ふつー print join("\n", @array);
0362nobodyさん2006/03/29(水) 07:53:09ID:???
>>361
反論しようと思ってベンチ取ったらjoinの方が三倍近く速かった(´・ω・`)
0363nobodyさん2006/03/29(水) 07:59:38ID:???
{local $,="\n";print @array}
0364nobodyさん2006/03/29(水) 10:01:43ID:???
>>361
先生!最後の要素が Zsh のプロンプトに喰われました!
0365nobodyさん2006/03/29(水) 11:08:43ID:???
よく分からんが
つ\n
0366nobodyさん2006/03/29(水) 12:10:29ID:???
いや、そういうことじゃなくて、等価でないものを「ふつー」と言われてもなあ、という話。
0367nobodyさん2006/03/29(水) 13:40:08ID:???
最後の改行ぐらい自分で付け足せよ、という話し。
0368nobodyさん2006/03/29(水) 13:52:08ID:???
じゃあ print "$_\n" foreach (@array); の方がシンプルで良いじゃん。あほらし。
0369nobodyさん2006/03/29(水) 13:53:27ID:???
無駄な文字列生成しないしな。
0370nobodyさん2006/03/29(水) 14:09:04ID:???
>>368
本気でそう思ってるのか?考え方の矯正をお薦めする。
遅いし、printを繰り返すし、無駄な変数使うし、良いとこなしだ。
レス返されてムキになってる訳じゃなくて、それが素の考え方ならある意味凄い。
0371nobodyさん2006/03/29(水) 14:11:52ID:???
>>362
うちなんか16倍も差が出たよ。
こんだけ早いならjoin使おうかな・・・
ちなみに下の2つでは微妙にmapのが早かった。
print "$_\n" for @array;
print map "$_\n", @arrray;
0372nobodyさん2006/03/29(水) 14:23:46ID:???
>>370
じゃあ、最後の "\n" がはみごになるのは気持ち悪くないの?
これが自然と思うのが Perl 流だというのなら仕方ないけど、
俺はものすごく気持ち悪くて仕方がない。
03733702006/03/29(水) 14:30:31ID:???
>>372
確かに気持ち悪い。でも、組み込み関数を使えるところは使うのが基本だし、
その一つとさっき挙げた数点を比べたら、その一つの点の為に他を犠牲にすることは出来ない。
0374nobodyさん2006/03/29(水) 14:40:23ID:???
363の出した$,が最速だと思うのだが...
0375nobodyさん2006/03/29(水) 14:41:08ID:???
うーん、そういうもんかね。
俺なら、例え 16倍も速度差が出たとしても、
本当にそこがボトルネックで困っているようなケースでないのであれば、
読み下せて意味が明確でわかりやすい方を取るけどな。
0376nobodyさん2006/03/29(水) 14:46:11ID:???
# 投稿コードチェック
if ($regist_key) {
$cd = $in{'code'};
$cd =~ s/\D//g;
if ( $cd =~ m/^\d{5}$/ ) {
$les = $addr;
$les =~ s/\D//g;
$les =~ /^(\d{5})(\d+)/;
$les = $1;
$cod = $cd + $les;
$cod =~ /^(\d{4})(\d+)/;
$cod = $1;
}
if ($cod ne $in{'regikey'}) { $err .= "投稿コードが不正です。<br>"; }
}
03773762006/03/29(水) 14:47:57ID:???
上の続き
# 投稿コード作成
sub key_image {
@num = (0 .. 9);
srand;
foreach (1 .. 5) {
$regikey .= $num[int(rand(@num))];
}
$les = $addr;
$les =~ s/\D//g;
$les =~ /^(\d{5})(\d+)/;
$les = $1;
$nu = $regikey + $les;
$nu =~ /^(\d{4})(\d+)/;
$nu = $1;
# テキストコード表示
print "<input type=text size=5 value=$nu>\n";
}
この中に使われない物は入ってます?
0378nobodyさん2006/03/29(水) 14:51:18ID:???
1,a,林檎
2,a,梨
3,b,西瓜
4,b,イチゴ
5,a,桃

のようなtest.txtというファイルを元に、
2つめの項目がaのを抜き出し表示する為に、


open(IN,"test.txt") || &error("Open Error: $logfile");
while (<IN>) {
    ($no,$type,$name) = split(/,/);
    if ($type eq 'a') {
    print "$name<br>\n";
}
}
close(IN);

とwhileで全行回すしかないのでしょうか?
0379nobodyさん2006/03/29(水) 16:36:14ID:???
>>378
正規表現やgrep等でもOK。

my $in = join( '', <> );
my @result = $in =~ /^\d+,a,.*$/gm;

my @in = <>;
my @result = grep { /^\d+,a,.*$/ } @in;

文法チェックもしてないけど、こんな感じで。
1つめの1行目は、my $in; { undef $/; $in = <>; }
とかの方が丁寧だけど。
0380nobodyさん2006/03/29(水) 16:38:19ID:???
>>379
あ、1個目
- my @result = $in =~ /^\d+,a,.*$/gm;
+ my @result = $in =~ /^(\d+,a,.*)$/gm;
だった。
他にも間違ってるとこあるかも。
0381nobodyさん2006/03/29(水) 17:20:47ID:???
でもそれって全部メモリに読んじゃうよね?

0382nobodyさん2006/03/29(水) 18:46:24ID:???
今時メモリちびちびつかってどうするのかと。
0383nobodyさん2006/03/29(水) 19:24:01ID:???
640KBしか積んでないんだよ
0384nobodyさん2006/03/29(水) 19:54:55ID:???
>>374
100万回でチェック
push (@array, rand) for (1..100000);
print "$_\n" foreach @array; ### 0.91 CPU [3]
print join "\n", @array; ### 0.54 CPU [2]
local $, = "\n"; print @array; ### 5.11 CPU [5]
print map "$_\n", @arrray; ### 0.39 CPU [1]
print $_, "\n" foreach @array; ### 0.93 CPU [4]

local $,が目立って遅かった…
0385nobodyさん2006/03/29(水) 20:27:02ID:???
>>384
まさかとは思うけどベンチマークの測り方知ってるよね
0386nobodyさん2006/03/29(水) 20:58:58ID:???
>>385
まさかとは思うけど、知らずに煽ってないよね?
0387nobodyさん2006/03/29(水) 21:02:09ID:???
>>386
知ってる
ベンチ取るのめんどくさいからやってないけど
$,が遅いとは思わないです><
0388nobodyさん2006/03/29(水) 22:08:29ID:???
use Benchmark;

push @array, rand for 1..100000;

timethese(100,
{
q{print STDERR "$_\n" foreach @array} => sub {print STDERR "$_\n" foreach @array},
q{print STDERR join "\n", @array} => sub {print STDERR join "\n", @array},
q{local $, = "\n"; print STDERR @array} => sub {local $, = "\n"; print STDERR @array},
q{print STDERR map "$_\n", @array} => sub {print STDERR map "$_\n", @array},
q{print STDERR $_, "\n" foreach @array} => sub {print STDERR $_, "\n" foreach @array},
});

print STDERR join "\n", @array: 2 wallclock secs ( 1.84 usr + 0.03 sys = 1.88 CPU) @ 53.33/s (n=100)
print STDERR "$_\n" foreach @array: 16 wallclock secs (11.66 usr + 3.94 sys = 15.59 CPU) @ 6.41/s (n=100)
print STDERR map "$_\n", @array: 22 wallclock secs (19.12 usr + 3.47 sys = 22.59 CPU) @ 4.43/s (n=100)
local $, = "\n"; print STDERR @array: 23 wallclock secs (16.55 usr + 6.75 sys = 23.30 CPU) @ 4.29/s (n=100)
print STDERR $_, "\n" foreach @array: 25 wallclock secs (17.66 usr + 6.83 sys = 24.49 CPU) @ 4.08/s (n=100)
03893882006/03/29(水) 22:12:56ID:???
joinがダントツで速いのは、printが1回で済むから。
0390nobodyさん2006/03/29(水) 22:23:16ID:???
もし宜しければ$,が遅いのはなぜか教えていただけると嬉しいです_ _
わからにゃい。。
0391nobodyさん2006/03/29(水) 23:31:28ID:???
うちでもほぼ同じ結果だった。x86_64 GNU/Linux
# mapブロック版と$"使用版を追加してます。
# 出力結果が同じになるようjoinに,"\n"追加してます。

print STDERR join("\n", @array),"\n": 2 wallclock secs ( 1.47 usr + 0.01 sys = 1.48 CPU) @ 67.57/s (n=100)
local $" = "\n"; print STDERR "@array\n": 2 wallclock secs ( 1.75 usr + 0.01 sys = 1.76 CPU) @ 56.82/s (n=100)
print STDERR "$_\n" foreach @array: 10 wallclock secs ( 7.57 usr + 2.44 sys = 10.01 CPU) @ 9.99/s (n=100)
print STDERR map "$_\n", @array: 13 wallclock secs (10.34 usr + 2.56 sys = 12.90 CPU) @ 7.75/s (n=100)
print STDERR map {"$_\n"} @array: 13 wallclock secs (10.47 usr + 2.54 sys = 13.01 CPU) @ 7.69/s (n=100)
local $, = "\n"; print STDERR @array: 14 wallclock secs ( 8.49 usr + 5.18 sys = 13.67 CPU) @ 7.32/s (n=100)
print STDERR $_, "\n" foreach @array: 15 wallclock secs (10.38 usr + 5.03 sys = 15.41 CPU) @ 6.49/s (n=100)

最初はlocalのせいで遅いのかとも思ったけど違うみたい。
内部で、$"はjoin、$,はmapあたりを使ってるなじゃないかと。
0392nobodyさん2006/03/29(水) 23:58:21ID:???
local $, = "\n"; print @array;
これって省略無しで書くとどんな感じ?
他はなんとなく処理がわかるけど、これだけ判らない。
解説プリーズ。
03933562006/03/29(水) 23:59:36ID:???
仕事から帰ってきて見たら、こんな盛り上がっているとは驚いた…
03943522006/03/30(木) 00:05:57ID:???
うわ、凄い伸びてる。
倒置っていうか、>>358が言うみたいな後置きの事です。
意味不明な言葉を補完してくれた人感謝。

やっぱ覚えておくとよさそうだなぁ。
ただ、書き方が()要るかとか$_とか使い出したりでちょっと面倒なんだよね。
解説してくれてるところが妙に見つからないし、習うより覚えろって事かな。
03953562006/03/30(木) 00:12:08ID:???
>>394
「Effective Perl」オヌヌメ。最近買ったんだけど、例えばforeachとmapとgrepの
明確な使い分けとか、そんなレベルでPerlのセンスを磨いてくれる良書だとオモタ。
後置きについても書いてあったかは忘れたけど、例文にはバンバン登場するので
非常に参考になる。

>>359
その通りだね。括弧書いたのは後でシモタとオモタよ。
0396nobodyさん2006/03/30(木) 00:14:55ID:???
print "$_\n" foreach @array; ### 0.91 CPU [3]
print $_, "\n" foreach @array; ### 0.93 CPU [4]

print STDERR "$_\n" foreach @array: 16 wallclock secs (11.66 usr + 3.94 sys = 15.59 CPU) @ 6.41/s (n=100)
print STDERR $_, "\n" foreach @array: 25 wallclock secs (17.66 usr + 6.83 sys = 24.49 CPU) @ 4.08/s (n=100)

連結って思ったより処理負荷大きいのかな。
気をつけようっと。
0397nobodyさん2006/03/30(木) 00:41:13ID:???
>連結って思ったより処理負荷大きいのかな

Benchmark: timing 10000 iterations of $a .= "a" , $a = $a . "a"...
$a .= "a" : 0 wallclock secs ( 0.17 usr + 0.00 sys = 0.17 CPU) @ 5882.35/s (n=1000)
$a = $a . "a": 85 wallclock secs (84.41 usr + 0.01 sys = 84.42 CPU) @ 11.85/s (n=1000)

うへぇ
0398nobodyさん2006/03/30(木) 00:45:35ID:???
>>396
カンマは連結じゃない希ガス。
0399nobodyさん2006/03/30(木) 00:48:32ID:???
>>394
ちゃんと本買って一から勉強するとかした方が良いと思う。
0400nobodyさん2006/03/30(木) 00:51:51ID:???
げげげ、ピリオドかと思ってたらカンマだったのねorz
0401nobodyさん2006/03/30(木) 01:07:54ID:???
素朴な疑問なんだけど、出力先を STDERR にするのは Benchmark の定石なの?

print STDERR だとバッファリングされずに必ず write(2) するから、
print STDOUT に比べて圧倒的に速度的に不利になると思うんだけど。
0402nobodyさん2006/03/30(木) 01:33:47ID:???
@の後ろにある数字が大きいと速いってこと?
0403nobodyさん2006/03/30(木) 01:50:36ID:???
>>401
で?
比較なんだから別にどうでもいいだろ
0404nobodyさん2006/03/30(木) 01:55:35ID:???
>>401
一回ごとに出力しないとちゃんと繰り返してることにならない。
0405nobodyさん2006/03/30(木) 01:59:04ID:???
>401
そりゃある文ではSTDERRつかって、ある文ではSTDOUT使ってたらベンチに偏りが出るけどさ・・・
条件が同じなら出力先はファイルでもなんでもいいんだよ
0406nobodyさん2006/03/30(木) 02:13:52ID:???
でも確かにそれだと速度差が正確にでないんじゃない?
他の処理のせいで処理自体の差は100/sと50/sの差なのに、
10/sと9/sって差が出てしまったら大差なさそうに感じてしまうし。
0407nobodyさん2006/03/30(木) 02:31:39ID:???
>>405
いやいや、だから、 >>389 が言ってるように、
print (というか write(2)) の回数が多い方が極端に不利になるじゃん、という話。
0408nobodyさん2006/03/30(木) 02:39:02ID:???
>>402
ベンチマークの基本から勉強しろよな


俺もわからないんだけどね
0409nobodyさん2006/03/30(木) 02:40:53ID:???
>>407
で?
比較なんだから別にどうでもいいだろ
0410nobodyさん2006/03/30(木) 03:21:17ID:???
> で?

煽ってるつもりなのだろうか。
0411nobodyさん2006/03/30(木) 05:10:05ID:???
join は内部的に最適化されているから、文字列連結では join を使うべし
ってのが、ラクダ本あたりにもよく出てくるよね。
0412nobodyさん2006/03/30(木) 06:41:01ID:???
@arrayの中身がどれだけ長くなっても、やはりprintを繰り返すよりも
joinの方が圧倒的に速いんだろうか?
0413nobodyさん2006/03/30(木) 07:15:57ID:???
>>412
長くなるほど差が広がると思う
0414nobodyさん2006/03/30(木) 08:50:36ID:???
>>413
でも、@arrayに加えてさらにjoinされる分のメモリが必要になるんだよ?
0415nobodyさん2006/03/30(木) 09:33:15ID:???
机上
04164072006/03/30(木) 10:45:36ID:???
机上と言われるとあれなので、STDERR じゃなくてファイルに書き出してみました。

print FILE join("\n", @array),"\n": 10 wallclock secs ( 8.07 usr + 2.05 sys = 10.12 CPU) @ 9.88/s (n=100)
local $" = "\n"; print FILE "@array\n": 13 wallclock secs (10.10 usr + 2.20 sys = 12.30 CPU) @ 8.13/s (n=100)
print FILE "$_\n" foreach @array: 19 wallclock secs (18.08 usr + 1.20 sys = 19.28 CPU) @ 5.19/s (n=100)
print FILE map "$_\n", @array: 30 wallclock secs (27.93 usr + 1.07 sys = 29.00 CPU) @ 3.45/s (n=100)
print FILE map {"$_\n"} @array: 29 wallclock secs (27.60 usr + 1.23 sys = 28.84 CPU) @ 3.47/s (n=100)
local $, = "\n"; print FILE @array: 13 wallclock secs (10.70 usr + 1.18 sys = 11.88 CPU) @ 8.42/s (n=100)
print FILE $_, "\n" foreach @array: 19 wallclock secs (16.84 usr + 1.16 sys = 18.00 CPU) @ 5.56/s (n=100)

map はどうあがいても遅そうですが、他は join との差がかなり縮まってると思います。
0417nobodyさん2006/03/30(木) 11:19:01ID:???
local $,は早いのか遅いのかどっちなんだw
04184072006/03/30(木) 11:54:18ID:???
>>417
まあベンチマークってそういうもんなんじゃないでしょうか。
机上だけでやっちゃうってのも問題ですが、
ベンチマークを鵜呑みにするのも問題だと思います。
ベンチマークも一つの目安に過ぎないんだと思います。
0419nobodyさん2006/03/30(木) 13:55:21ID:???
まぁ動けばいいよ
この板のレベル的に
04204072006/03/30(木) 14:05:48ID:???
あ、そうそう。
>>405 さん、この結果に関して何かフォローがあればよろしくです。
0421nobodyさん2006/03/30(木) 14:31:39ID:???
>>420
joinが一番早くてmapが遅いということが確認できました
0422nobodyさん2006/03/30(木) 14:52:07ID:???
STDOUTを/dev/nullにリダイレクトして、cmptheseをSTDERRに吐いて確認してみますた。

print map {"$_\n"} @array 13.8/s -- -1% -44% -52% -69% -76% -80%
print map "$_\n", @array 14.0/s 1% -- -43% -51% -69% -75% -79%
print "$_\n" foreach @array 24.4/s 77% 75% -- -15% -46% -57% -64%
print $_, "\n" foreach @array 28.7/s 109% 106% 18% -- -36% -49% -57%
local $, = "\n"; print @array 45.0/s 227% 223% 85% 57% -- -20% -33%
local $" = "\n"; print "@array\n" 56.5/s 310% 305% 132% 97% 25% -- -16%
print join("\n", @array),"\n" 67.6/s 391% 384% 177% 135% 50% 20% --

まぁ、自分はこの差が問題になるよなコードを書くことはないと思うけど。
0423nobodyさん2006/03/30(木) 14:57:20ID:???
ベンチマーク云々は>>375で結論でてるから、もういいよ。
0424nobodyさん2006/03/30(木) 15:31:44ID:???
いや、結論はどうだろうと知っておいて損は無い。
むしろどんどんやってくれ。
0425nobodyさん2006/03/30(木) 15:56:27ID:???
>420
書き方によってスピードに差が出るってのをベンチマークとって分かればいいんだから、
ファイルに書き出した結果もベンチ結果の1つでしょ?
またSTDERRに書き出してたベンチも結果の1つ

君がそれ以上に何が知りたいかのかわからんよ
04264072006/03/30(木) 16:16:27ID:???
>>425
別にあなたに聞いてないんだけど・・・
「何かフォローがあれば」って言ってるので、特になければレス要りませんよ。
0427nobodyさん2006/03/30(木) 19:01:15ID:+BI4fyV2
CGI.pmで複数のパラメータを取得してJcode.pmで変換かませたいんですけど
ひとつひとつを変換するのではなく、一度に変換する良い方法ありませんか?
0428nobodyさん2006/03/30(木) 19:23:03ID:???
1行で済ますことはできますが、バラバラに格納されたデータを
一度に変換する方法など、Perlでなくてもありません。
0429nobodyさん2006/03/30(木) 23:12:22ID:???
WinとFreeBSDとFedoraでベンチしてみたが、全部順位が違った。
それもわずかな差じゃなくて数倍以上。
一体中で何が起きてるんだ…
子ネタ
ttp://itpro.nikkeibp.co.jp/article/NEWS/20060330/233820/
0430nobodyさん2006/03/31(金) 00:19:33ID:???
>407
あなた自分の解釈の間違いに意固地になって必死すぎ
0431nobodyさん2006/03/31(金) 00:27:55ID:???
>>429
どんな違いなのかざっとで良いので公開希望。
0432nobodyさん2006/03/31(金) 00:34:36ID:???
ファイル書き出しはWinが遅いと勝手に予想してみたり・・・
04334072006/03/31(金) 01:04:54ID:???
>>430
間違ってるってわかってるのならどこがどう間違えてるか指摘してくださいよ。
0434nobodyさん2006/03/31(金) 01:42:27ID:???
>>430
遅レスカコイイwwww
0435nobodyさん2006/03/31(金) 01:47:32ID:???
なんでこんなに香ばしくなってんだこのスレは…



Σ
春休みかorz
0436nobodyさん2006/03/31(金) 01:58:45ID:???
途中まではいい流れだったのにな。
変なのが絡みだすとこういう事に。
この板住人は煽り耐性低いというか、言い返さずに入られない人多いよな。
0437nobodyさん2006/03/31(金) 02:11:22ID:???
いちいち自己紹介しなくてもいいよ
0438nobodyさん2006/03/31(金) 02:47:50ID:???
ここまで落ち着けば、良い質問がいくつか来ればスレの流れはとりあえず戻ると思うけど、
この空気じゃなかなか質問がしづらいという悪循環。
0439nobodyさん2006/03/31(金) 13:33:21ID:MWW8UoCr
>>428
その一行を教えてください><
0440nobodyさん2006/03/31(金) 15:01:40ID:???
じゃあ、スルーされちゃった>>392プリーズ。
0441nobodyさん2006/03/31(金) 15:28:24ID:???
>>440
特に何も省略されてないと思われ。

print 演算子の出力フィールドセパレータ (デフォルトは空文字列) を「改行」にし、
@array を print する。

って感じで。
0442nobodyさん2006/03/31(金) 16:06:55ID:???
おお、なるほど。
なんとなく把握できた。

解説感謝。
0443nobodyさん2006/03/31(金) 16:33:00ID:???
>>439
ヒント: 改行入れなければどんなに長くても1行は1行
0444nobodyさん2006/03/31(金) 18:52:18ID:???
まったくcgiとかやったことないんですけど、2chぽい掲示板のが見づらいので自分で変えようと思ったのですが
たとえば
<a href=read.cgi?bbs=$bbs&key=$key&ls=$lslimit&mode=i accesskey=3>?新</a>
とかは携帯から見れる新って書いてあるリンクをおすと#63881に書いてあるコマンドを実行するってことですか?
リンクを押すと新しいレス10件を表示させるようにしたいのですが、そのコマンドがどこに書いてあるのかわからなくて・・。
0445nobodyさん2006/03/31(金) 19:49:56ID:???
すみません、わかりました。
#63〜ってのはエモジのことみたいですね。
0446nobodyさん2006/03/32(土) 01:29:26ID:???
local $, = "\n";
これがわからんかったんで調べた・・・ (知ってる人にはどうでもいいことだろうけど、分からない人も居るだろうし・・・)

$, 自体が特殊変数で、print 関数で表示する際にセパレータとして挿入される値

>>392 の例だと、「配列の要素間に \n を入れる」 という意味


なるほど勉強になりました。
0447nobodyさん2006/03/32(土) 01:31:27ID:???
なんでmyじゃなくて遅いlocalなんだろう?とか、
初心者なので思ったりする。
0448nobodyさん2006/03/32(土) 01:37:06ID:???
特殊変数は local でやる決まり
0449nobodyさん2006/03/32(土) 02:16:23ID:???
勉強になった!
ありがとう。
0450nobodyさん2006/03/32(土) 08:17:31ID:???
ほぇ〜そゆ決まりもあったんですか

勉強になります
0451nobodyさん2006/03/32(土) 09:15:53ID:???
>>416
>>422

目的のアルゴリズム部だけの速度を求めたいのなら、print は一切省いて

join("\n", @array),"\n";
local $" = "\n"; "@array\n";
"$_\n" foreach @array;
map "$_\n", @array;
map {"$_\n"} @array;
local $, = "\n"; @array;
$_, "\n" foreach @array;

とかでいいと思う。デバイスに出力するのが遅いだけでなく、print 関数の使用自体が
遅い可能性もあるし(C言語とかだとそう)。

まぁ、これだと $, を使用したときの正確な値が求められないが、内部的に $, は
そんなにコストがかかっていなさそう。
おそらく内部では、$, ||= ''; (←実際にはCとかで)とでもやって条件分岐なしで処理してそうだし。
実際にベンチをとって確認するのは大切なことだけどね。
0452nitraid2006/03/32(土) 14:06:31ID:G839mIFt
携帯サイトの各キャリア別で振り分けしたいのですが、何か良い方法(CGI等)はありませんか?
The Roomさんの振り分けCGIを使ってみたのですが、最近の携帯ではPCページにアクセスしてしまうようで困っております。
みなさんよろしくお願いします。
0453nobodyさん2006/03/32(土) 14:14:34ID:???
IP帯域
0454nitraid2006/03/32(土) 14:40:58ID:G839mIFt
nobodyさん回答ありがとうございます。
DoCoMo、au、vodafoneどれなのかを判別して振り分けたいのですが、各端末情報を書かなければいけませんか?
よろしくお願いします。
0455nobodyさん2006/03/32(土) 14:53:28ID:???
関係ないけど2006/03/32ってなんだよ?
0456nobodyさん2006/03/32(土) 15:45:13ID:???
>>455
2ちゃんねるは初めての方ですか?
ラウンジ板へどうぞ^^
0457nobodyさん2006/03/32(土) 17:27:19ID:???
誰か日付が03/32になるようにするにはどうすればいいのか教えてくれ
0458nobodyさん2006/03/32(土) 17:28:37ID:???
>>454
host名にdocomoとかついてるから簡単にわからない?
0459nobodyさん2006/03/32(土) 18:52:12ID:???
>>457
s#04/01#03/32#;
0460nobodyさん2006/04/02(日) 13:14:52ID:???
配列やハッシュのリファレンスの入った配列をコピーし、
リファレンス先の値を変更してから、元の配列と比較したいのですが、
リファレンスを用いているために元の配列の値が変更されてしまいます。
何か元の配列の値を変更しない、効率の良い方法はあるでしょうか?
my @S=([1,2,3],[1]);
{
my @T=@S;
$T[0][0] = 0;
#ここで、$T[0][0]==$S[0][0]となってしまいます...
}
0461nobodyさん2006/04/02(日) 14:10:23ID:???
>>460
> リファレンスを用いているために元の配列の値が変更されてしまいます。
という質問に対する答えはディープコピーすればOK。
例えばこうやって:
my @T = map { [@$_] } @S;

自動でやってくれる便利なモジュールもある。
ttp://search.cpan.org/~rdf/Clone-0.20/Clone.pm
PurePerl版: ttp://search.cpan.org/~evo/Clone-PP-1.02/PP.pm

データ量が非常に多い場合はtieで差分を記録して処理するラッパを作ると良いかもしれないが、
オーバーヘッドがあるからこれは実際にやってみないとわからないな。

しかし本当にコピーする必要があるのか?
どうもその質問を見ると何所が書き換わったのかだけが知りたいようにも見えるんだが。
04624602006/04/02(日) 16:55:34ID:???
>>461
ありがとうございます。
最終的に、データ構造全体が必要なのでコピーは必要そうです。
利用しようとしているデータ構造は、>>460で示したものよりもう少し複雑です。
配列のリファレンスと、ハッシュのリファレンスが同じ配列に入っていたり...
mapは初めて知りましたが、何層にもなるデータ構造を完全にコピーするのは難しそうに見えます。
mapの何か応用的な利用法、または別の方法とかはあるのでしょうか。
モジュールが使えればよいのですが、設定が良く分からないので使えませんorz
データ構造はこんな感じです(各要素は適当に省略しています)。:
@S=(
{'a'=>[1,1],'b'=>1},
[{'c'=>[1,2],'d'=>1},{}],
[{},{}]
);
0463nobodyさん2006/04/02(日) 18:07:27ID:???
perlスクリプトからC:\test.exeのようなファイルを実行するには
どのようにすればいいでしょうか。
0464nobodyさん2006/04/02(日) 18:48:20ID:???
exec, system自分の用途にあわせてどうぞ
04654632006/04/02(日) 18:54:08ID:???
>>464
なるほど。ありがとうございました。
0466nobodyさん2006/04/02(日) 18:56:57ID:???
print $_ for a..z ; みたいなこと出来ませんか?
0467nobodyさんNGNG
試してみてから書き込みましたか?
0468nobodyさん2006/04/02(日) 19:11:16ID:???
>>467
ゴメン
strict外したらでけた
0469nobodyさん2006/04/02(日) 19:21:08ID:???
'a'..'z'
0470nobodyさん2006/04/02(日) 19:25:53ID:???
>>469
dクス!
0471nobodyさん2006/04/02(日) 20:43:19ID:???
>>462
別にPurePerl版なら面倒なインストールやら設定やらは要らないんだけどな。
PP.pmをスクリプトがある場所のClone/PP.pmとして配置して、
use Clone::PP qw(clone);
my @T = @{ clone(\@S) };
これだけ。が、CPAN Search落ちてるな…DLはこの辺りのミラーからどぞ
ttp://ftp.ring.gr.jp/pub/lang/perl/CPAN/modules/by-module/Clone/Clone-PP-1.02.tar.gz

どうしてもモジュールが使えないなら、とりあえず自分で書いてみれ。
使うであろう部品や検索キーワードを置いとくから。
ref, map, 再帰呼び出し, ディープコピー

> 何層にもなるデータ構造を完全にコピーするのは難しそうに見えます。
そこは再帰呼び出しと組み合わせる。
0472nobodyさん2006/04/03(月) 02:08:58ID:???
aaa(argv1, argv2);
上記のように2つ引数を受け取る関数を作り、引数1は省略可能な引数として作りましたが、
aaa(, argv2);
のように書いたら、あたりまえでしょうがエラーになりました

やっぱ省略可能な引数は省略不可の引数のあとに書くべきですかね?
0473nobodyさん2006/04/03(月) 02:17:05ID:???
第2引数が必須なら入れ替えるべきだと思う。
そうでないなら第1引数にはundefを渡す。
0474nobodyさん2006/04/03(月) 02:35:42ID:???
あ〜そっかそっかundefとかいうのありましたね。 す〜っかり忘れてた (;´Д`)
とりあえず修正はあとにしてundef渡すようにします
>473さんありがとです
0475nobodyさん2006/04/03(月) 17:08:10ID:OQWMmdli
http://www.bousaid.que.jp/software/urlencode/index.php
このサイトで、「毛蟹」というキーワードをsjisでエンコードすると、
%96%D1%8AI
という文字列が得られると思います。

ここではphpの関数を使って変換しているようなので
このような結果になっていますが、
同等の結果をperlで取得する方法はないのでしょうか?

よく使われる
$str =~ tr/+/ /;
$str =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack('H2', $1)/eg;
のような変換では、
%HHと2桁に変換されるわけですから上のような結果にはなりませんよね。

当方、phpの知識はほとんどありませんTT。
04764752006/04/03(月) 17:13:14ID:OQWMmdli
perl 5.6でコーディングしています。
0477nobodyさん2006/04/03(月) 18:02:17ID:???
エンコードとデコードごっちゃにしてないかお前
0478nobodyさん2006/04/03(月) 18:03:26ID:???
$str =~ s/(\W)/sprintf('%%%02X', unpack('C', $1))/eg;
こうか
0479nobodyさん2006/04/03(月) 18:07:42ID:???
>>475
phpとjavascriptに関するところだけど、URLエンコード差異について詳しいページがあったので紹介。
ttp://jsgt.org/ajax/ref/charset_test/responsetext/php/urlencode.php

基本的にマルチバイト文字をバイト単位で見てASCIIで表現できればパスするということ。
例えばA-Za-z0-9以外をunpackするなら
$str = "毛蟹";
$str =~ s/([^a-zA-Z0-9])/"%" .uc(unpack('H2', $1))/ge;
print $str; # %96%D1%8AI
0480nobodyさん2006/04/03(月) 18:22:33ID:???
そうそう、モジュールも。
use URI::Escape;
$str = "毛蟹";
print uri_escape($str); # %96%D1%8AI
0481nobodyさん2006/04/03(月) 18:23:27ID:???
つURI::Escape
0482nobodyさん2006/04/03(月) 21:04:04ID:???
毛蟹ワロタwwww
0483nobodyさん2006/04/03(月) 22:31:17ID:???
毛蟹っていう微妙なリアルさが良いなw
04844752006/04/03(月) 22:40:14ID:OQWMmdli
すいません。>>475はデコードの部分貼り付けちゃいました。
>>479
参考になるサイトを教えていただきありがとうございます。
"蟹"はsjis16進で"8a49"
49はASCIIで"I"だから・・・
ということですね。

てか、自分が悩んでいる内容が全然別のことだと気付きました。
申し訳ないですが、もう一度質問させてください。

Jcodeの質問です。5.6なので、Encodeモジュールが使えません。
当方、スクリプトの文字コードはUTF-8で書いてますが、
use URI::Escape;
my $str = uri_escape(jcode("毛蟹")->sjis);
print $str;
の結果は
%E3%AD%9B%E8%9F%B9
となってしまいます。

試しに
print getcode($str);
をしてみると、空文字?が返ってきます。
print getcode("毛蟹");も空文字が返ります。
print getcode("毛蟹じゃあ!");は、utf8が返ります。

文字コードの変換がきちんとおこなわれていないようなのですが、
"毛蟹"をきちんとsjisへと変換させる方法はないでしょうか?

ちなみに、さっきから毛蟹毛蟹言ってますけど
その文字列はユーザが入力する文字列と考えてください。
04854752006/04/03(月) 22:41:23ID:OQWMmdli

use Jcode;
が抜けてました
0486nobodyさん2006/04/03(月) 23:07:47ID:???
>>484
use URI::Escape;
use Jcode;

my $convstr = '毛蟹';
my $str = uri_escape(jcode($convstr,'utf8')->sjis); # icodeを指定する

print uri_escape($convstr),"\n"; # %E6%AF%9B%E8%9F%B9
print $str; # %96%D1%8AI

まだ「毛蟹」で笑ってる自分が嫌です。
04874752006/04/03(月) 23:36:11ID:???
>>486
そんなオプションがあったのですね!
完璧です。ありがとうございました。
0488nobodyさん2006/04/03(月) 23:40:37ID:???
問題解決したトコで、毛蟹にこだわった理由を2行でw
0489nobodyさん2006/04/03(月) 23:51:28ID:???
毛蟹、タラバなどの取引量、価格情報等を取り扱うwebサービスからデータを随時取得して
向こう1週間のおかずを決めるアプリを開発中なためです。
0490nobodyさん2006/04/03(月) 23:52:20ID:???
そんなに毛蟹食いたいんだな
つ【\20000】
04914602006/04/03(月) 23:53:46ID:???
>>471
PurePerl版でパソコンの上で動かせるようにはなりました。
プログラムの別の部分ですが、再帰呼び出しというのも便利で、勉強になりました...
ありがとうございました。
0492nobodyさん2006/04/03(月) 23:55:29ID:???
ちょっと待って! カニカマには毛蟹はいってないよ!
0493nobodyさん2006/04/04(火) 00:09:48ID:???
カニカマはフランスで大人気なのを知ってるか?
ばかにすんなよ!
0494nobodyさん2006/04/04(火) 00:29:28ID:???
ネカマは2chで大人気なのを知ってるか?
ばかにすんなよ!
0495nobodyさん2006/04/04(火) 00:32:56ID:???
改変するならもっと面白く改変しようぜ。
0496nobodyさん2006/04/04(火) 01:01:34ID:???
レンタルスペースにあげたら動くのに
AN HTTPで試したら500エラーてどういうコトなんだろうか('A`)
文字コード・Perlパス いろいろ試してすでに2週間・・・
0497nobodyさん2006/04/04(火) 01:30:52ID:???
エラーメッセージも書きませんかそうですか
0498nobodyさん2006/04/04(火) 01:47:10ID:???
ページを表示できません
検索中のページには問題があるため表示できません。

--------------------------------------------------------------------------------

次のことを試してください:

127.0.0.1 ホーム ページを開き、 必要な情報へのリンクを探してください。
[更新] ボタンをクリックするか、後でやり直してください。

[検索] ボタンをクリックして、インターネット上の情報を検索してください。
関連したサイトの一覧 も表示できます。

HTTP 500 - 内部サーバー エラー
Internet Explorer


しか出ないんだ ごめん(´・ω・`)
トレースのログ 晒したらわかるかな?
0499nobodyさん2006/04/04(火) 01:51:42ID:???
<<< s=444: Tue Apr 04 01:49:26 2006 <<<
GET /cgi-bin/uhouho.pl HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/msword, */*
Accept-Language: ja
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
Host: 127.0.0.1
Connection: Keep-Alive

>>> s=444: Tue Apr 04 01:49:26 2006 >>>
HTTP/1.1 500 Server Error
MIME-Version: 1.0
Server: AnWeb/1.42n
Date: Mon, 03 Apr 2006 16:49:26 GMT
Content-Type: text/html
Content-Length: 196

<HTML><HEAD><TITLE>Error </TITLE></HEAD>
<BODY>
<H1>Error 500</H1>
CGI エラー - CGIを実行できません <HR><ADDRESS><a href="http://www.st.rim.or.jp/~nakata/">AnWeb/1.42n</a></ADDRESS>
</BODY></HTML>
0500nobodyさん2006/04/04(火) 01:56:50ID:???
>>496
落ち着いて↓これ読んで試してください。>>498-499みたいのは貼られても困る。
http://pc8.2ch.net/test/read.cgi/php/1104624784/2

Un*x→Winだったらsymlinkとかでばくばくコケるのかな。
0501nobodyさん2006/04/04(火) 01:58:39ID:???
>>500
119番の応対みたいでワロタ
0502nobodyさん2006/04/04(火) 03:19:49ID:???
>>500
スマソ あんまこの板こないからよくわからんけどスレ違いだったかな(´・ω・`)
もう一度 落ち着いて試してみる d
0503nobodyさん2006/04/04(火) 09:52:27ID:???
ここは毛蟹スレですよ
0504nobodyさん2006/04/04(火) 13:19:03ID:???
ファイルを作成して指定した日に削除するプログラムを作りたいんですが
どうしたらorz










(´・ω・)がいしゅつ?
0505nobodyさん2006/04/04(火) 13:25:40ID:???
>>504
いろいろとやり方はあるだろうけど、もっと、用途というか、
どういう環境でどんなふうにやりたいかとか詳しく書いた方が答えやすいかも。
0506nobodyさん2006/04/04(火) 13:47:30ID:???
ファイル作成まで含めるのか
削除する日付はどう指定するのか
0507nobodyさん2006/04/04(火) 14:05:40ID:0uJ/AX+F
CGI(Perl)でフォームメールを扱っているんですが、
ごく一部のユーザーからのフォームデータが欠けているのです。

そのうちの一人と連絡がとれ、そのユーザーがMacユーザーである事が確認できました。
Macユーザーのフォームデータは受け取れないというような事例はあるのでしょうか?

コードはS_JISで書いてます。
0508nobodyさん2006/04/04(火) 14:12:43ID:???
うんこなブラウザがあるということは聞いています。
0509nobodyさん2006/04/04(火) 14:44:06ID:???
safari
05105072006/04/04(火) 15:32:54ID:0uJ/AX+F
解決しました。ありがとうございました。
0511nobodyさん2006/04/04(火) 15:33:23ID:???
そういや昔のケータイでアンダースコアを含んだ名前だと送信できねえってのがあったな。
0512nobodyさん2006/04/04(火) 15:33:29ID:???
>>507
STDINの中身ダンプしてみたら?
0513nobodyさん2006/04/04(火) 16:09:53ID:???
>>498
いろいろ考えられるけど、

1. そもそもCGI不許可の鯖
2. 特定のディレクトリに置かないと動かない(例:cgi-bin等)
3. .htaccess ファイルの記述ミス。ちゃんとCGI実行されるようにする。
4. スクリプトファイルの文字コードがsjis になっちゃってたりする。eucにする。
5. perl インタプリタのパスが間違っている。1行目を見直す。
6. 出力で、最初に"\n"を出力していない。
7. パーミッションの設定ミス。701、755等にしてみる。

まぁ、自宅鯖で動いているなら 6 はなさそうかな。
まず、以下のようなごくシンプルなスクリプトで試してみ。

---
#!/usr/bin/perl
print "\nOK!";
0514nobodyさん2006/04/04(火) 18:33:02ID:???
多次元配列なんですけど、途中で数字でなく文字列を使うようにすることは可能でしょうか?

$a = $array[0]{abc}[1];

数字だけならこんな↓感じの代入でできたんですけど。

@array = ( [ ["a", "b"], ["c", "d"] ],
[ ["e", "f"], ["g", "h"] ],
[ ["i", "j"], ["k", "l"] ],
[ ["m", "n"], ["o", "p"] ] );
0515nobodyさん2006/04/04(火) 18:48:07ID:???
ヒント:リファレンス
0516nobodyさん2006/04/04(火) 20:46:17ID:???
>>513
こんなとこで油売ってないで、今日納期のやつ仕上げろよ。
0517nobodyさん2006/04/05(水) 06:02:50ID:???
>>514
普通にハッシュ使えばいいのでは?

my @array = (
{abc=>[1,2,3], def=>[4,5,6]},
{abc=>[7,8,9], def=>[1,2,3]},
);

http://www.kt.rim.or.jp/%7Ekbk/perl5.005/perldsc.html
0518nobodyさん2006/04/05(水) 09:05:23ID:???
>>517
サンクス。
0519nobodyさん2006/04/05(水) 19:24:19ID:???
use Fcntl;
このモジュールの宣言をしないとflockは使えないんですか?
宣言無しでflockの1,2,8使えてるのは
evalでトラップされてるからなのでしょうか?
0520nobodyさん2006/04/05(水) 19:45:46ID:???
flock FH, 2; # 数字を使う場合は「use Fcntl;」は不要。
flock FH, LOCK_EX; # 定数を使う場合は「use Fcntl;」が必要。

宣言無しでflockの1,2,8が使えてるのは、定数を使ってないから。

0521nobodyさん2006/04/05(水) 20:11:28ID:???
>520
ありがとうございます。

調べても分からなかったんですが、
定数を使うと何か他の処理ができるようになるんですか?
0522nobodyさん2006/04/05(水) 20:36:20ID:???
> 定数を使うと何か他の処理ができるようになるんですか?

はつみみです。
0523nobodyさん2006/04/05(水) 20:49:31ID:???
>>521
定数を使うと移植性が高くなるだけで、処理内容は同じですよん。
0524nobodyさん2006/04/05(水) 20:59:48ID:???
> 定数を使うと移植性が高くなるだけで、

だけ?
0525nobodyさん2006/04/05(水) 21:13:52ID:???
どき!
0526nobodyさん2006/04/05(水) 21:28:35ID:???
レベル低いな〜
webprog行けよ・・・
って思ってたらここがwebprog板だった
0527 ◆aiY4htt2.2 NGNG
>>526
わろす♪
05285212006/04/05(水) 21:38:06ID:???
>523
そうですか。
ありがとうございました。



>519でモジュールと言いましたがプラグマの間違いです。
0529nobodyさん2006/04/06(木) 05:19:58ID:???
プラグマなん?

package Fcntl;

=head1 NAME

Fcntl - load the C Fcntl.h defines

=head1 SYNOPSIS

use Fcntl;
use Fcntl qw(:DEFAULT :flock);

=head1 DESCRIPTION

This module is just a translation of the C F<fcntl.h> file.
0530nobodyさん2006/04/06(木) 09:03:53ID:???
Fcntlは明らかにモジュール。

プラグマは「useするとプログラムの挙動が変わるモジュール」のことだからの。
0531nobodyさん2006/04/06(木) 12:47:22ID:???
>530
それなら両方正解か
0532nobodyさん2006/04/06(木) 13:06:07ID:???
プラグマ名は小文字から始まるんじゃなかったっけ…?
0533nobodyさん2006/04/06(木) 13:36:04ID:???
プログラマはwarningsとかstrictだぬぁ。
0534nobodyさん2006/04/06(木) 13:36:42ID:???
そこで5.8.8で追加されたperlglossaryですよ。
ttp://search.cpan.org/~nwclark/perl-5.8.8/pod/perlglossary.pod

・プラグマ
実用的なヒントや指示がコンパイル時に受け取られる(時に無視すれる)標準モジュールです。
プラグマは全て小文字で命名されます。

で、訳あってる?英語苦手だから自信ない(´・ω・`)
0535nobodyさん2006/04/06(木) 15:14:11ID:???
>>533
!!!
0536nobodyさん2006/04/06(木) 18:12:22ID:9PXV35kY
perl書いたり編集したりしているとき、スクロールして
場所探すのが大変です
これを部分部分に分けてタブで切り替えて作業するとか、
そういうのありませんかね?

あったら便利だなぁと思ったもので
0537nobodyさん2006/04/06(木) 18:15:20ID:???
>>536
Perl書くのにどんなエディタ使ってる?
http://pc8.2ch.net/test/read.cgi/php/1014357485/

色々ある
0538nobodyさん2006/04/06(木) 22:07:28ID:???
質問です。
掲示板の今見ているレスから10件前のを表示させようと思ったのですが、
「自分の今見ているところを取得して、そこから10件引いたリンクをつくる」(当たり前のことですが)まで考えました。
ですが、自分の今見ているレス(何番から何番)を「取得するにはどうしたらいいのでしょうか?
0539nobodyさん2006/04/06(木) 22:16:28ID:???
>>538
言葉どおりに捉えるなら、「自分が今見ているレス」なんて分かるはずもなく。
むしろ「自分が今見ているレス」をどうやって指定するかがミソ。
指定できれば、あとは10件遡るだけですね。
こういうのは決まったやり方があるわけじゃなくてアルゴリズム次第なんで
考えるのが面倒くさいとか分からないとかのレベルじゃPerlに限らず何にも作れません。
0540nobodyさん2006/04/06(木) 22:20:49ID:???
それは既製品を改造しようとしてるのか
まだ構想段階でその機能を付けようと思ったのか
0541nobodyさん2006/04/06(木) 22:27:55ID:???
>>539
そうだったんですか・・。
すみませんでした。ありがとうございました。
>>540
一応配布されているのを改造しようと・・。

2ちゃんねるとか他のをみていると
スレ一覧からスレを見るとスレ番/|10で、前を押すと/988-998とかになっているので、簡単にできるのかなーと思ってました。
0542nobodyさん2006/04/06(木) 22:40:35ID:???
>>538
例えば「20〜30を表示」してる時に、そこに「10〜20を表示させるリンク」を仕込めるのは自明。
改造という視点なら>>2
0543nobodyさん2006/04/06(木) 22:44:59ID:???
11件表示とは変わってるな
0544nobodyさん2006/04/06(木) 22:48:15ID:???
>>542
改造は別でしたか、すみませんでいsた。調べてみます。
情報ありがとうございました。

>>543
あれ・・・?たしかに・・。

0545nobodyさん2006/04/07(金) 03:14:09ID:???
2進数のExcluslveOR計算をPerlで行うことは可能でしょうか。
具体的には、

1010 1000 0001 0011
1100 1101 1000 1110
---------------------
0110 0101 1001 1101

こういった計算ができないかということでございます。
ご教示いただけますと幸いです。
0546nobodyさん2006/04/07(金) 03:41:32ID:???
http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rls=GGLG,GGLG:2005-32,GGLG:ja&q=XOR+perl

とりあえずしね。
0547nobodyさん2006/04/07(金) 17:48:12ID:???
Perlで画像を結合するにはどうしたらよいのでしょうか
教えてください
0548nobodyさん2006/04/07(金) 19:27:23ID:???
>>547
gifcatで検索

>>504です。レス遅れてすいません

テキストをフォームに書いてそれをアップロードするという内容なんですが
そのアップロードしたテキストを30日後に削除したいんです
0549nobodyさん2006/04/07(金) 19:28:28ID:???
>>547
gdでもimでも好きなの使えや
0550nobodyさん2006/04/07(金) 19:32:03ID:???
perlで最大7元くらいの連立一次方程式を解きたいと思っています。
調べてみたのですがコードを載せている所が見当たらなくて...
よろしくお願いします
0551nobodyさん2006/04/07(金) 19:45:56ID:???
>>550
アルゴリズムが知りたいのかすぐに使えるコードが知りたいのかどっちだ?
05525502006/04/07(金) 19:53:52ID:???
おそらく、既にある程度定式化された事だと思うので、
コードを教えていただくのが早いと思ってます。
コードが分かればアルゴリズムは自分で解析できると思います。
0553nobodyさん2006/04/07(金) 20:15:40ID:???
なにもPerlでそんな連立方程式を解かせる事は無いような…。
本だか雑誌だかはあるはずだよ。数学系に特化したやつ。
コードはCだったような気がするけど。
0554nobodyさん2006/04/07(金) 20:26:44ID:???
>>548
どうもありがとうございます。

>>549
gdとimというものを使用した画像連結例などございましたらご教示ください
0555nobodyさん2006/04/07(金) 20:37:03ID:???
>>554
Image::Magickでぐぐる
0556nobodyさん2006/04/07(金) 20:52:13ID:???
KENTさんのスクリプトにあったのですが、以下に出てくる *_ って何を表しているのですか?

foreach ( split(/\n/, $mbody) ) {
&jcode'convert(*_, 'jis', 'sjis');
print MAIL $_, "\n";
}
0557nobodyさん2006/04/07(金) 21:00:14ID:???
>>556
型グロブだがいまどきそんな古いもの覚えてもしょうがないと思うぞ...
0558nobodyさん2006/04/07(金) 21:05:39ID:???
>>556
http://www.kt.rim.or.jp/%7Ekbk/perl5.005/perldata.html#Typeglobs_and_Filehandles
http://mikeneko.creator.club.ne.jp/~lab/kcode/jcode.html#h2-2
0559nobodyさん2006/04/07(金) 21:17:32ID:???
>>557-558
ありがとうございます。
0560nobodyさん2006/04/07(金) 21:19:43ID:???
すみません、もう一つお願いします。
この型グロブというのを使わないとすれば、>>556はどのような記述にすればいいのでしょうか?
0561nobodyさん2006/04/07(金) 21:23:12ID:???
知らないが・・・リファレンスで渡すと思う・・・たぶん・・・おそらくは・・・
0562nobodyさん2006/04/07(金) 21:30:33ID:???
型グロブでなくリファレンスで書いても動くでしょう、という話でなくて、
jcode.pl自体が古いんですよ。

この辺を読んでおくといいのかな?今はどうするもんなのかについても触れられてるよ。
ttp://openlab.jp/Jcode/index-j.html
0563nobodyさん2006/04/07(金) 21:31:00ID:???
>>555
モジュールがあるのですね。ありがとうございました。
gdとはどのように使えば宜しいのでしょうか
0564nobodyさん2006/04/07(金) 21:36:51ID:???
>>552
連立一次方程式といえば行列が思い浮かぶな。
ttp://search.cpan.org/~ulpfr/Math-Matrix-0.5/Matrix.pm
use Math::Matrix;
my $m = Math::Matrix->new(
[ 1, 1, 1, 6], # x + y + z = 6
[ 2, -1, 4, 12], # 2x - y + 3z = 9
[ 5, 6, -5, 2], # 5x + 6y - 5z = 2
);
print $m->solve();
こっちのほうにはあまり詳しくないから一般的な解き方は知らん。スマン。
0565nobodyさん2006/04/07(金) 21:39:23ID:???
>>561-562
サンクス。
0566nobodyさん2006/04/07(金) 21:48:25ID:???
>>563
GDもモジュール
ぐぐれ
0567nobodyさん2006/04/08(土) 01:15:57ID:???
>>566
ありがとうございます。
ぐぐってみます
0568nobodyさん2006/04/08(土) 01:42:34ID:???
画像を連結じゃなくて、画像を重ねるときはどうしたらいいでしょうか。
0569nobodyさん2006/04/08(土) 01:51:51ID:???
ぐぐれ。
0570非5682006/04/08(土) 01:55:19ID:???
ImageMagickは本家のところしか今まで見てなくてコマンドラインが分かりにくいなと思ってたが
日本語で解説してるとこのほうがはるかに内容充実してるんだな
先にこっち見ればよかった

perlと関係ないけど
0571nobodyさん2006/04/08(土) 08:25:36ID:???
>>570
いいの紹介、サンクス。
05725502006/04/08(土) 23:38:24ID:???
有り難うございます。
>>553
perlスクリプト中で方程式の解が必要になってくるんです。
perl以外の言語で探すとひとまず見つかりました。
本の方も調べてみます。
>>564
行列の方は目に入っていたのですが、時間がかかるという話を読んで避けていました。
実際の所どうなんでしょう?
0573nobodyさん2006/04/08(土) 23:41:36ID:???
> perlスクリプト中で方程式の解が必要になってくるんです。

外部コマンド呼ぶなり、ライブラリ使って XS 書くなり...
0574nobodyさん2006/04/09(日) 18:45:31ID:yjpSMuEB
変数値を変数名にする方法ってありますか?
たとえば$test = "filename";
という変数をみて
$filenameという変数を作成したいのです。
$$testです。
エスパーの方お願いします。
0575nobodyさん2006/04/09(日) 18:48:13ID:???
次の質問どうぞ
0576nobodyさん2006/04/09(日) 18:48:53ID:???
>>574
いきなりエスパーを求めるなよ。つかエスパーじゃなきゃわからん質問をしようとするなよ。
${$test}
05775742006/04/09(日) 19:02:04ID:???
>>576
ありがとう!!できたよー。

本当に有難うございます。
0578nobodyさん2006/04/09(日) 19:11:41ID:???
>>576はエスパー
0579nobodyさん2006/04/09(日) 20:04:09ID:???
自分で書いてる$$testでも正解だったわけだが...
0580nobodyさん2006/04/09(日) 20:19:36ID:???
いい釣り堀ですね
0581nobodyさん2006/04/09(日) 20:51:51ID:???
>>579
ミスに繋がるからお勧めはできんがな。
ていうかそもそも変数名を変数にしようという時点で(ry
0582nobodyさん2006/04/09(日) 20:54:32ID:???
>>581
perlの場合 ある程度は仕方がないだろ
0583nobodyさん2006/04/09(日) 20:56:49ID:???
>>582
その程度をうp!
0584nobodyさん2006/04/09(日) 21:26:44ID:???
デバッガの類を作ろうというのでない限りはハッシュ使ったほうがいい
0585nobodyさん2006/04/09(日) 21:40:11ID:bLVoNdT6
こんな感じでハッシュ変数を使ってフォームを作成しています。
ifで比較している$iconは手前で読み込んでいるデータです。
キーと比較して、同じならselectedにしています。
動作自体は希望通りに動くのですが、プルダウンメニューの並び順が滅茶苦茶になってしまいます。
その01,02...としたいのですが、その10,01,20...となってしまいます。
キーをソートすれば良いと言う事までは解ったのですが、上手く行きませんでした。
どのようにsort関数を挟めば良いのでしょうか?

%icon=(
'icon_00.gif','指定しない',
'icon_01.gif','その01',
'icon_02.gif','その02',
'icon_03.gif','その03',
'icon_04.gif','その04',
'icon_05.gif','その05',
※これが"その30"まで続きます。"
);

foreach $key(keys(%icon)){
if ($icon eq $key) {
print "<OPTION value=\"$icon{$key}\" selected>$key</OPTION>\n";
} else {
print"<OPTION value=\"$icon{$key}\">$key</OPTION>\n";
}
}
0586nobodyさん2006/04/09(日) 21:55:42ID:???
foreach $key(sort(keys(%icon))){
0587 ◆aiY4htt2.2 NGNG
print map {
 sprintf qq|<OPTION value="%s"%s>$key</OPTION>\n|,
  $icon{$key},
  $icon eq $key
   ? ' selected'
   : ''
 } sort keys %icon;

って書いちゃうよなぁ、、、@わるいくせ?
0588nobodyさん2006/04/09(日) 22:16:58ID:???
V と C くらい分けろ。
05895852006/04/10(月) 02:07:12ID:JCUetGcd
>>586
どうも有り難うございます。
問題なく動きました。

>>587
こんなやり方もあるんですね。
まだ超初心者なので、細かい意味は不明なんですが。
勉強します。
0590nobodyさん2006/04/10(月) 08:46:55ID:???
> まだ超初心者なので、細かい意味は不明なんですが。

何も細かい意味なんてありませんよ。
0591nobodyさん2006/04/10(月) 10:50:22ID:???
ファイルパスを指定すると深い階層にファイルを生成してくれるモジュールないでしょうか?
ディレクトリ生成ならFile::Pathでいけるんですが。
ディレクトリ作った後にファイル生成するのが早いかな・・・
0592nobodyさん2006/04/10(月) 10:53:28ID:???
my $buf = "/prefix/to/data/dir";
my $f = "/fuck/you/i/do/want/fucking";
foreach (split(m|/|, $f)) {
next unless $_;
$buf .= "/" . $_ ;
mkdir($buf);
}
0593nobodyさん2006/04/10(月) 11:15:40ID:???
>>592
ありがとうございます。
ただそれだとFile::Pathと同じことですよね?
ファイル生成までを一気にやってくれる既存モジュールを探しています。
自分で書いたほうが早いとは思うんですが、ご存知でしたら後学のために教えてください。
0594nobodyさん2006/04/10(月) 17:04:46ID:???
やべえ無限ループやっちまった
シェルでログインできん
0595nobodyさん2006/04/10(月) 17:09:16ID:???
別のコンソールを開いて、そっちからkill
…それすらできない状態?
0596nobodyさん2006/04/10(月) 17:21:20ID:???
コンソール?サーバセンター行き?
0597nobodyさん2006/04/10(月) 17:37:13ID:???
再帰処理のばかあああああああああああああああ
0598nobodyさん2006/04/10(月) 17:51:06ID:???
あ〜あ
0599nobodyさん2006/04/10(月) 17:57:44ID:???
local で試せよと。
0600nobodyさん2006/04/10(月) 18:04:26ID:???
散々試した処理をちょっと変更してしまったのです・・・
0601nobodyさん2006/04/10(月) 18:26:17ID:???
で、もう kill したんだよな?
まだならさっさとしる。
0602nobodyさん2006/04/10(月) 18:29:05ID:???
サーバセンターに電話して電源ぽちっとしてもらいました・・・
テストサーバなので実害はありませんでしたが、以後同じ過ちを繰り返さぬよう(略

orz
0603nobodyさん2006/04/10(月) 18:57:13ID:???
HTML::TemplateのTMPL_LOOPでテーブルセルの三段組作る方法ないの?
面倒だからモジュール直で書き換えちゃったよorz
0604nobodyさん2006/04/10(月) 20:19:31ID:???
>>603
テーブルセルの三段組ってのがわからんのでなんとも。
どういう変数があってそれををどういうHTMLにしたいのかね。
0605nobodyさん2006/04/10(月) 23:36:36ID:???
>>602
頼むから開発から手を引いてくれ
0606nobodyさん2006/04/11(火) 00:35:41ID:???
>>605
i|!| |i┏┓! i!┏┳┓| |||i|!i| ||!i|| |||ii| ||| ||| |i||!|i│i!┏┓i!|
|i|┏┛┗━╋┻┛|i!||!|ii|| i|!i||i|┏━┓ ┏┓i|i| i┃┃i!|
i||┗┓┏┓┃||i┏━━━━┓┗━┛ ┃┃|i||!i┃┃i!|
|i |!|i┃┃┃┃i||┗━━━━┛|i|| || ||||!┃┃i|i| i┗┛!i|
i||i ||┃┃┃┃|! |||i ||i    !|||!|┏━━┛┃|i||!i┏┓i|!
|i!i |!┗┛┗┛i|!i|  / |   / | ┗━━━┛i|i| i┗┛i!|
i| |||i|!i| ||!|i||i!   /,_ ┴─/ ヽ      |!i| ||| |i||!|i|i|||| ||i
|i|| ||i!i||     (_゜.,》.'(_゜,》)ミ ヽ       ! | |!i||!|ii||!|ii|
i|ii        / ,,__,ニ、、 ノ( |           i|i!|i|
|i        | Y~~/~y} `, ~ |  そ、そんなー…   |i
!.          | ,k.,.,!,.,.,r| ,!  く                 .!
i        / <ニニニ'ノ    \               l
0607nobodyさん2006/04/11(火) 07:13:56ID:???
>>602
まずはシェルの基本的な使い方勉強しる。
telnet と kill くらいでもいいから。

サポセンに電話しなくても自分で対処できるようになるから。
0608nobodyさん2006/04/11(火) 09:05:56ID:???
forkしまくってプロセスが爆発的に増えるような奴だと
ログインすら満足にできなくなることがあるよ。昔やっち
まったことがある(笑)
0609nobodyさん2006/04/11(火) 10:04:30ID:???
>>607
ターミナルすら繋がらない状態でした
鯖が手元にあればコンソールで入れたかもだけど
たぶんメモリ使用量が限界いってたと思われます

>>605
ほんとそう思いますよね(つд`;)
0610nobodyさん2006/04/11(火) 16:06:02ID:???
ファイル作りまくっても反応返ってこなくなるよ。
鯖に入ってても、lsすら返ってこなくなる。
forkよりましだけどね。
0611nobodyさん2006/04/11(火) 18:59:01ID:???
連想配列の配列
my $aaa = [
{bbb=>1,ccc=>2,ddd=>3,},
{bbb=>4,ccc=>5,ddd=>6,},
{bbb=>7,ccc=>8,ddd=>9,},
];
をcccでソートして順番に出したいんですが
どうしたらよいでしょうか?
0612nobodyさん2006/04/11(火) 19:05:38ID:???
>>611
sortにcccで比較するように書いたブロックを渡す
sort { $a->{ccc} <=> $b->{ccc} } @$aaa
0613nobodyさん2006/04/11(火) 22:21:41ID:???
SQL につっこめめばー?
0614nobodyさん2006/04/12(水) 01:19:55ID:???
>613
ソートするためにわざわざSQL使うの?
SQL使わないとソートできないの?
0615nobodyさん2006/04/12(水) 01:26:35ID:???
規模がでかくなるとまんどくさくね?
0616nobodyさん2006/04/12(水) 07:12:28ID:???
>615
規模がでかくなっても
sort { $a->{ccc} <=> $b->{ccc} } @$aaa
のままだと思うのですが、なにか特殊なことをする必要があるのでしょうか?
0617nobodyさん2006/04/12(水) 09:54:34ID:???
「SQL につっこむ」ってどういう意味?
RDBMS でも使えば、っていうのならわかるけど。
06186112006/04/12(水) 10:01:24ID:???
>>612
ありがとうございます!勉強になりました。
0619nobodyさん2006/04/12(水) 10:45:00ID:???
>>617
無理して知る必要もないかと。
0620nobodyさん2006/04/12(水) 11:21:30ID:???
>>619
誤爆?
0621nobodyさん2006/04/12(水) 13:51:21ID:???
>>617
無理して知る必要もないかと。
0622nobodyさん2006/04/12(水) 14:15:01ID:???
>>621
誤爆?
0623nobodyさん2006/04/12(水) 14:16:59ID:???
>>622
無理して知る必要もないかと。
0624nobodyさんNGNG
相変わらずレベル低くてイイヨイイヨーw
0625nobodyさん2006/04/12(水) 14:23:30ID:???
>>624
誤爆?
0626nobodyさん2006/04/12(水) 15:16:50ID:Cw1Ovj1p
s関数についての質問です。
参考書には、(s/検索文字/置換文字/)という形で書かれているのですが。
コードを読んでいると、以下のような書き方を見つけました。

$datadir =~ s!/$!!

ググって見たんですが、この書式について書かれたドキュメントを
見つけることが出来ませんでした。
この命令がどのような挙動をするか教えてください。
0627nobodyさん2006/04/12(水) 15:17:32ID:???
実行してみればよいのでは?
0628nobodyさん2006/04/12(水) 15:19:08ID:???
>>626
つperlop
ttp://perldoc.jp/docs/perl/5.6.1/perlop.pod
Quote and Quote-like Operatorsのところ
0629nobodyさん2006/04/12(水) 15:38:52ID:???
「!」をデリミタとしてるわけですか
0630nobodyさん2006/04/12(水) 17:45:11ID:ZYfftFgu
すみません
Microsoft WORD の MIME typesはなんになるのでしょうか?
アップローダに認識を追加したいのです
0631nobodyさん2006/04/12(水) 17:55:54ID:0tB7vJSs
PATH_INFOで
http://example.com/index.pl/hogehoge/

http://example.com/hogehoge/
でアクセスできるようにするにはどうすればいいですか
index.plを省略したいんです
0632nobodyさん2006/04/12(水) 17:58:25ID:Sri0F7ev
http://list3.auctions.yahoo.co.jp/jp/23352-category-leaf.html?
0633nobodyさん2006/04/12(水) 18:07:23ID:???
>>630

      , イ)ィ -─ ──- 、ミヽ
      ノ /,.-‐'"´ `ヾj ii /  Λ
    ,イ// ^ヽj(二フ'"´ ̄`ヾ、ノイ{
   ノ/,/ミ三ニヲ´        ゙、ノi!
  {V /ミ三二,イ ,  /,   ,\  Yソ
  レ'/三二彡イ  .:ィこラ   ;:こラ  j{
  V;;;::. ;ヲヾ!V    ー '′ i ー ' ソ
   Vニミ( 入 、      r  j  ,′
   ヾミ、`ゝ  ` ー--‐'ゞニ<‐-イ
     ヽ ヽ     -''ニニ‐  /
        |  `、     ⌒  ,/
       |    >┻━┻'r‐'´
      ヽ_         |
         ヽ _ _ 」

  ググレカス [ Gugurecus ]
  ( 2006 〜 没年不明 )
0634nobodyさん2006/04/12(水) 18:12:50ID:???
>>633
      、ヾ:;:::::::::::::::::::::':::::::-、
     、ミ::::::';:::::::::::::::::;';:::::::::::::::::ヾ、
    i':::::::::::::::::::::::::::::::::::::::::::::::::::::::ヽ
    ミ:::::::::::::::::;:;;::::::r -‐'''"'ヽ::::::::::!;!
     ミ::;r--‐'  `ヾ     ミ::::::::::i
     .l::!           ;.:ミ、:::;::::l,r‐、
     ヾ         _,......::::/'ヾ:::: ;.!
       !      .::'r t.j;、:::/:::: ::' ' !
       i.llir_,=:ll!,.- :l:. ::::'::',!:::::::; ...!-'!:ヽ
        _! ``´' l! ' ,`−´ .::::: ::::::::l:::::::`:::
        ヾ ‐ '´;  ,ィ:.,    .::::::::::::l:::::::::::::
         ヽ  ,r';';":;:::";';;! ..:::::::::::/:::::::::::::
       ,r::::::::ヽ ''-''.二-‐'"..:::::::::;:::::::::::::::::::
      /::::::::::::::::::::ヽ、 __,...::::::::::;:::::::::::::::::::::::
      l:::::::::::::::::::::::::! /::::!:::::. /::::::::::::::::::::::::
     /:::::::::::::::::::::::::l ./::::::::ヽ /:::::::::::::::::::::::::::

         ツ・レタ [T .Reta]
          (1940〜 ウガンダ)
0635nobodyさん2006/04/12(水) 19:26:44ID:EyVZ0TsJ
すいませんどなたかお願い致します。
CGI.pmによる、「アップロードされたファイルのサイズ取得方法」
ですがどのようにすれば良いのでしょうか?
0636nobodyさんNGNG
>>630
application/msword

>>631
mod_rewriteでも使えや
0637nobodyさん2006/04/12(水) 20:17:17ID:???
>>635
statの7
0638nobodyさん2006/04/12(水) 22:32:12ID:???
>>636
有り難うございます

ずるぼんアップローダですが、本体スクリプトのMINE typesの部分に追加
するだけじゃだめなようですね
0639nobodyさん2006/04/13(木) 04:37:15ID:???
ごめん、ちょっと教えて。

ローカルサーバ (Win+Apache) で、Perl を C:\Perl にインストールしたとすると、
普通は 1行目を #!C:/Perl/bin/perl って書かないとじゃんね。
これ1行目 #!/usr/bin/perl のまま変更しなくてよくするにはどうするんだっけ?
いつか見た記憶があるんだけど忘れちゃったw

C:\usr\ に Perlインストールする、とか、
C:\usr\bin に perl.exe コピーすればなぜか使える、とか、
Apache じゃなく ANHTTPD ならイケル、とか、は知ってるけど、それ以外で何とか。
0640nobodyさん2006/04/13(木) 06:02:52ID:???
とか言ってたらごめん自己解決 orz

httpd.conf で 「ScriptInterpreterSource registry」 を有効にして、
レジストリで 「HKEY_CLASSES_ROOT」 の 「.pl」 のとこのを 「.cgi」 にコピーしたらできたー。

#!/usr/bin/perl  討 伐 完 了
0641nobodyさん2006/04/13(木) 08:39:20ID:???
C:にインスコする時点で終っとる
0642nobodyさん2006/04/13(木) 13:40:43ID:???
いや、実際インスコしてんのは D: だけど、今回は C: のがわかりやすいと思ってそうしたんだけどね。
検索かける分にも "d:\perl" より "c:\perl" のが多いわけだし。
わざわざツッツキあり^^
0643nobodyさん2006/04/13(木) 14:04:20ID:???
#!/
がどこを指すか、わかるよな?
0644nobodyさん2006/04/13(木) 14:07:00ID:???
>>643
それはわかるが、言いたいことがわからんしw
0645nobodyさん2006/04/13(木) 14:31:04ID:???
>>644
無理して知る必要もないかと。
0646nobodyさん2006/04/13(木) 14:41:03ID:???
Winの場合PATH通ってれば#!perlでも大丈夫じゃん
0647nobodyさん2006/04/13(木) 14:56:09ID:???
そこでlighttpdですよ
0648nobodyさん2006/04/13(木) 15:16:42ID:???
つシンボリックリンク
0649nobodyさん2006/04/13(木) 17:10:34ID:???
つシボリクリック
0650nobodyさん2006/04/13(木) 17:52:38ID:???
shebangを #!/usr/bin/perl にしたままWin鯖で動かすのが目的って質問文に書いてあるだろ
0651nobodyさん2006/04/13(木) 18:05:56ID:???
C:\usr\bin
ここにシンボリックリンクを置けばいいんじゃないの?コピーではなく。
0652nobodyさん2006/04/13(木) 18:11:12ID:???
うん。ショートカットとかいうのを
\usr\bin\perl
\usr\local\bin\perl
として転がしておけば #!/usr/local/bin/perl -w みたいなオプションつきのも
記述どおりの動きになるんじゃないのかな。
0653nobodyさん2006/04/13(木) 18:14:16ID:???
ショートカットじゃ無理だと思う。
06546522006/04/13(木) 18:20:22ID:???
あら、無理なんですか。ウニクスのsymlinkみたいなものかと思ってました。
# 普段は /usr/local/bin/perl が本体、 /usr/bin/perl -> /usr/local/bin/perl で使用。

Win機で試してみます。
06556522006/04/13(木) 18:36:43ID:???
>127.0.0.1 - - [13/Apr/2006:18:25:47 +0900] "GET /test.cgi HTTP/1.1" 500 1183

>[Thu Apr 13 18:25:47 2006] [error] [client 127.0.0.1] (OS 2)指定されたファイルが見つかりません。 :
> couldn't create child process: 720002: test.cgi

ショートカットでは無理なんですね。
perl.exeのコピーを置かないとダメみたいです。こちらは200 OK。

自分であまり使わない環境なのになんでテストしてるんだろう…。
0656nobodyさん2006/04/13(木) 18:46:11ID:???
ショートカット    ×
シンボリックリンク ○
コピー         ○

Winにもsymlinkがあるからそれを使えばコピーじゃなくておk、ということです。
0657nobodyさん2006/04/13(木) 18:53:08ID:???
すごく突っ込まれそうなレスになってしまったがまあいいや。

ttp://eside.homeip.net/free/symlink2k.html
これ、便利です。
0658nobodyさん2006/04/13(木) 19:01:09ID:???
起動するインタプリタを設定によって変えるモジュールあっても良いな…作るか便利そうだし
06596522006/04/13(木) 19:09:25ID:???
横レスから板違いになってすみません。

>>656-657
情報ありがとうございます。
ショートカットでない、ジャンクションっていうのがあるのを知りませんでした。
自分でも調べてみます。
0660nobodyさん2006/04/13(木) 19:39:25ID:???
Cygwin のシンボリックリンクってコレだったのか。
06616392006/04/13(木) 20:04:21ID:???
えええ、Win でもシンボリックリンクっぽいのできたんかーΣ(゚Д゚)
みんな良レスありがとないー。
0662nobodyさん2006/04/13(木) 23:42:55ID:???
なにもそこまでがんばらんでも、管理するwebサイトの配置をD:\のどこかにして、
perlインスコ先をD:\usrにすれば/usr/bin/perlって指定出来るじゃん
0663nobodyさん2006/04/13(木) 23:49:06ID:???
まあ、Windows なんかで鯖やるようなやつはばかです。
それがたとえ実験環境であってもです。
0664nobodyさん2006/04/14(金) 00:25:23ID:???
レン鯖で実験されるよりは遥かにマシだから俺は許す
0665nobodyさん2006/04/14(金) 00:26:48ID:???
VMware player 使うべきなんじゃないかと思う。
0666nobodyさん2006/04/14(金) 00:30:55ID:???
レン鯖で実験するような人間がVMware使えるわけがない
ましてやLinuxインスコなんてとてもとても
0667nobodyさん2006/04/14(金) 00:40:26ID:???
という固定観念。
0668nobodyさん2006/04/14(金) 00:57:40ID:???
>>662
だって、php とか c++ とかを D\:php とか D:\cpp とかにいれてるのに、perl だけ1行目のためだけに D:\usr にするとかありえなくね?
レジストリとかリンクいじるだけでできるんならそっちのがイイヨ(´・ω・`)
0669nobodyさん2006/04/14(金) 01:05:31ID:???
ぷげらっちょ
0670nobodyさん2006/04/14(金) 02:34:19ID:???
.cgiをperlに関連付けして使ってる。
1.3系列だけど。
06716582006/04/14(金) 03:34:06ID:???
ということでmod_shebang作った。
ttp://www.42ch.net/UploaderSmall/source/1144953006.zip
モジュールをロードして
ShebangAlterCommand /usr/bin/perl perl.exe
こんな感じ
0672nobodyさん2006/04/14(金) 04:18:43ID:???
はやっ。乙…なんだけど、テストするスキもないまま書いててすまんです。

ある日、apacheのdistから取ってきたtar玉ほどいて mod_shebang.c が入ってたら
腹抱えて笑うんだろうね。
0673nobodyさん2006/04/14(金) 12:37:47ID:???
>668
俺は PHP を /usr/php に入れてるしなぁ

運用のときの事を考えないやつ多いんだな・・・
0674nobodyさん2006/04/14(金) 12:54:18ID:???
shebang 行は、ふつー #! @PERL@ じゃネーノ?
0675nobodyさん2006/04/14(金) 13:45:24ID:???
>>673
php って mod_php 環境で使うのがふつーだとおもてた。
0676nobodyさん2006/04/14(金) 14:10:16ID:???
いい加減スレ違いだから消えてくれないか
あくまでコーディングの質問のスレだから。
0677nobodyさん2006/04/14(金) 14:11:00ID:???
コマンドラインツールとして PHP を使ってる酔狂なひととみた。
0678nobodyさん2006/04/14(金) 14:44:54ID:???
たとえば .svn/ を消すためにウンコスクリプトをでっちあげてしまったがために
dis られるような、そんな「酔狂」なひと?
0679nobodyさん2006/04/14(金) 16:41:08ID:???
はてな以外ではじめて「disる」の表現をみた
0680nobodyさん2006/04/14(金) 16:49:09ID:???
http://www.google.co.jp/search?hl=ja&ie=UTF-8&q=dis%E3%82%8B
0681nobodyさん2006/04/14(金) 19:02:36ID:???
http://www.google.co.jp/search?q=%22dis%E3%82%8B%22
0682nobodyさん2006/04/15(土) 14:22:44ID:WxXRjWCr
Shift_JISの掲示板で半角の「¥」を入力すると、
データファイルでは「¥」になっているのに、
半角「\」で表示されてしまいます。
これを退避する方法はありますか?
0683nobodyさん2006/04/15(土) 14:40:49ID:???
エンコードとか関係ない。
フォントによる。
0684nobodyさん2006/04/15(土) 15:18:27ID:TyfvpvYA
正規表現についての質問です。
文字aから始まって文字bで終わる文字列のなかでも、
文字zが入らないような文字列にマッチさせるにはどうしたらいいでしょうか。
a.*[^z].*b
ではまったく意味をなしませんよね・・・。
0685nobodyさん2006/04/15(土) 15:21:49ID:???
a[^z]*?b
0686nobodyさん2006/04/15(土) 15:49:39ID:???
>>684
こう
^a[^z]*b$
0687nobodyさん2006/04/15(土) 16:11:35ID:c44RBImj
JPG、GIF、および PNG 画像を、単にピクセル リサイズではなく、きれいに縮小してくれる Perl モジュールを探しています。
0688nobodyさん2006/04/15(土) 16:14:12ID:???
ImageMagick
0689nobodyさん2006/04/15(土) 18:06:11ID:c44RBImj
単にピクセル リサイズではなく、きれいに縮小
0690nobodyさん2006/04/15(土) 18:07:08ID:???
ImageMagick
0691カシス2006/04/15(土) 18:44:04ID:???
質問スマソ。
自作Perl・CGIで作るマガをwebを通して発行する。
outlook2000で見ると改行できない。
他のbeckyとかoutlookexpressならちゃんと改行出来ている。
・・・そこで一度FTPを通してアップするとちゃんと改行出来ている。

自分PerlもCGIも詳しくないのでナゼなのかわからないのです。
CGI・Perlの両方のデータ持ってるんで誰か心優しい方教えてください。
0692nobodyさん2006/04/15(土) 18:46:15ID:???
日本語でもう一度質問して下さい
0693nobodyさん2006/04/15(土) 18:58:32ID:c44RBImj
では、もう一度質問します。
JPG、GIF、および PNG 画像を、単にピクセル リサイズではなく、きれいに縮小してくれる Perl モジュールを探しています。
0694nobodyさん2006/04/15(土) 19:04:10ID:???
ImageMagick
0695nobodyさん2006/04/15(土) 19:04:11ID:???
IMは綺麗に縮小してくれますよ
0696nobodyさん2006/04/15(土) 19:32:16ID:???
つ optpix
0697nobodyさん2006/04/15(土) 20:24:26ID:q8gKpXSp
Perlで変数名を動的に付ける方法を教えてください; たとえば、「yamada」と入力があった場合は「$yamada」なる変数を作るという意味です(「入力」というのは、あくまで例です)。
「なんでそんなこと考える必要がある?代替法を考えてやるから、やりたいことを書いてみろ」というのではなく、所期の目的を達成する方法だけを教えてください。
0698nobodyさん2006/04/15(土) 20:33:36ID:???
>>697
なんでそんなこと考える必要がある?代替法を考えてやるから、やりたいことを書いてみろ



>>574-581
0699nobodyさん2006/04/15(土) 20:37:39ID:q8gKpXSp
エスパーの方、お願いします。
0700nobodyさん2006/04/15(土) 20:44:07ID:???
${'yamada'} = 'vip';
print $yamada;
0701nobodyさん2006/04/15(土) 20:44:33ID:???
次の質問どうぞ
0702nobodyさん2006/04/15(土) 20:49:22ID:???
もう来ねぇよ
0703nobodyさん2006/04/15(土) 20:53:54ID:???
オレ697だけどもう来ねぇよ
0704nobodyさん2006/04/15(土) 21:03:35ID:???
>>703
ID出せよm9(^Д^)プギャー
0705nobodyさん2006/04/15(土) 22:04:00ID:???
>>687-690, >>693-694
お前ら、おもろいな。
0706nobodyさん2006/04/15(土) 22:23:24ID:???
>>687-690, >>693-694
爆笑したwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwww
0707nobodyさん2006/04/15(土) 22:27:10ID:???
>>687-690, >>693-694

ここまで頭の悪い質問者と、律儀な回答者は、初めて見た。
0708nobodyさん2006/04/15(土) 22:53:42ID:???
そんなに面白いか?
0709nobodyさん2006/04/15(土) 23:14:40ID:???
ややウケ
0710nobodyさん2006/04/15(土) 23:30:23ID:oGexcrlz
http://www3.pref.yamanashi.jp/uryo/i/C06.htmlにアクセスしてデータを取得するCGIを作ってます。

サーバーにアクセスすると、サーバーがデータをよこさない様子で
下のスクリプトの最後の行の手前までは問題なく動くのですが、最後の行で止まります。
どうやらwww3.pref.yamanashi.jpのサーバー全てで同じく止まるようです。

このスクリプトでwww.pref.yamanashi.jpはじめ他のサーバーなら問題なくデータが取得できているので
スクリプトの基本はできているはずなんですが何が問題なんでしょうか?どうぞよろしくお願いします。

print SOCK "GET @_[1] HTTP/1.1\n";
print SOCK "Host: @_[0]\n";
print SOCKET "Connection: close\n\n";
print SOCK "User-Agent: @_[2]\r\n";
print SOCK "\r\n";
@SOCK = <SOCK>;
0711nobodyさん2006/04/15(土) 23:36:47ID:???
あーもうめんどいから
use LWP::Simple;
して
$data = get 'http://www3.pref.yamanashi.jp/uryo/i/C06.html';
でもしとけ
0712nobodyさん2006/04/15(土) 23:53:56ID:???
突っ込み所が多すぎてもうどこから突っこんでいいやら
スライシングになってるのとか\r\nと\nの混在とか一つだけSOCKETとか…
配列の要素一つを表すには$_[0]…というか名前付けろよ

まあLWP使って置いた方が確実
0713nobodyさん2006/04/16(日) 01:09:21ID:???
確かに、つっこみたい点は多いのだが、試しに
perl -MLWP::Simple -e "print get 'http://www3.pref.yamanashi.jp/uryo/i/C06.html';"
してみると、確かに何も出ない。
どういうことだ?
0714nobodyさん2006/04/16(日) 01:16:23ID:???
Windows XP SP2 Active Perl 5.8
0715nobodyさん2006/04/16(日) 01:18:01ID:???
ではちゃんと取得できるけど。
0716nobodyさん2006/04/16(日) 01:23:03ID:???
>713
今試したら出てきたよ
07177132006/04/16(日) 01:41:35ID:???
単なるPMTUブラックホールでした。スマソ。
おそらく710も同じ原因だと思われ。
でも、スクリプトが酷すぎるので、LWPを使うのをお勧めする。
07187102006/04/16(日) 03:09:37ID:???
皆さんありがとうございます。
細かい文法もわからずコピペで作ったので
これを機に直してみます。

とりあえずLWPというのをやってみます。
0719nobodyさん2006/04/16(日) 05:48:11ID:???
コピペで作ったって?えらい度胸あるな。
どうしても実現したいという気持ちはわかるが。
0720nobodyさん2006/04/16(日) 10:26:11ID:???
Windows ActiveOerl 5.8.7なんですが、

ABC[CR][LF]
ABC[CR][LF]
ABC[CR][LF]
([CR]は\x0Dで[LF]は\x0Aです)

こんなファイルを

open(DAT,"TEST.txt");
binmode(DAT);
print while( <DAT> );
close(DAT);

として読み出すと、なぜか
ABC[CR][CR][LF]
とCRが増えるんですが何故でしょうか?
[LF]を[CR][LF]に変換しちゃってるようなんですが、binmodeにしても変換が行われるのですか?
0721nobodyさん2006/04/16(日) 11:04:54ID:???
>>720
Perlは入力と出力、両方で改行コードをいじる機能がONになっている。
どういう用途か知らんが、(binmodeしてない)テキストモードなら入力のCRLFをちゃんと\nとして認識してくれるぞ?
0722nobodyさん2006/04/16(日) 11:21:18ID:???
おおなるほど、binmode(STDOUT)でうまくいきました。

CGIのヘッダとして常に出力する定型文があるのですが、それはLFで保存されています。
ついでにHTTPレスポンスも外のファイルにしたいと思いまして。
そこで、HTTPの応答はCRLFだったので、外部ファイルにCRLFで保存して試したところ
上のような状態になりまして…。

よく見れば定型文の方もLFが全てCRLFになっていたのですが、こっちは気がつきませんでした。
どうもありがとうございました。
0723nobodyさん2006/04/16(日) 11:49:38ID:???
ActiveOerl
0724nobodyさん2006/04/17(月) 20:57:23ID:???
このスレで
変数名の内容の変数を作る
ってのを見たんだけど、これを関数で出来ないんですか?

たとえば
my($funcname) = 'calc';
ってしたあとに
&{$funcname}
ってやると
sub calc
が呼ばれるみたいな感じ

何がやりたいのかっていうと、自分で書いてるスクリプトに plugin で機能追加できるように
したいんですけど、イマイチやりかたが思い浮かばないので上記の方法が出来れば簡単かなって・・・
0725nobodyさん2006/04/17(月) 21:03:38ID:???
ごめん自己解決しました

my($funcname) = \&{'test'};

で関数名を入れて、

&$funcname;

で呼び出せました

plugin を実現するには require とか use しないといけないかなぁ・・・とか思ってたけど、
これでなんとかperlでもっともっと遊べそうです
0726nobodyさん2006/04/17(月) 21:05:31ID:???
あっ、require とか use はしなくちゃいけないんだよ
何書いてんだか orz


package でスクリプト書ける人はこんな回りくどいやり方とかはしないのかしらん?
plugin とか実装したことのある人の意見とかアドバイスがあったらよろしこです m(_ _)m
0727質問2006/04/17(月) 21:09:36ID:fgM7OcPI

正規表現にて
&str1 = "ZZZZ"
&str2 = "YYYY"
$bufの値の中で
value="xxxZZZZxx"
を見つけたら
value="YYYYxxxZZZZxx"
に一括変換したい。
(xは任意の文字列、英数字および.~-/?&+=:@%;#%)

いろいろ試しましたが
$bufから"value="が消滅したりしてだめでした。

だれか力を貸してください。
07287272006/04/17(月) 21:25:52ID:fgM7OcPI

正規表現でもなくともいいのですが・・・
0729nobodyさん2006/04/17(月) 21:27:37ID:???
>>724
「require」「package」「シンボルテーブル」あたりの知識が足りないの分かってんなら調べりゃいいじゃん。
そもそもplug-inで追加される機能が誰に対してのものなのか。

>>727
$bufの文字列内に$str1が存在すれば$bufの7文字目と8文字目の間に$str2を挿入するってこと?
substrを左辺値にして使うといい。
どうしても置換でしたければ s/^(value=")(.*$str1.*")$/$1$str2$2/;
0730nobodyさん2006/04/17(月) 22:01:31ID:???
よく >>727の壊れた質問の意味が分かったねぇ。。。
大体&str1, &str2って何よw
07317272006/04/17(月) 22:08:29ID:fgM7OcPI

>>730
$str1,$str2でした。
07327272006/04/17(月) 22:33:27ID:fgM7OcPI

>>729
>$bufの文字列内に$str1が存在すれば$bufの7文字目と8文字目の間に$str2を挿入するってこと?
という意味ではなく、
$bufの文字列内の任意位置に「value="xxxZZZZxx"」(xは0文字以上の英数字(.~-/?&+=:@%;#%))
という文字列部分を
「value="YYYYxxxZZZZxx"」に変換したかった。

ありがとうございます。
$buf =~ s/(value\=\")([\w\.\~\-\/\?\&\+\=\:\@\%\;\#\%]*$str1[\w\.\~\-\/\?\&\+\=\:\@\%\;\#\%]*\")/$1$str2$2/g;
にて動作いたしました。(テストパターンが万全ではないですが・・・)

何か間違いなどがございましたら、ご指摘ください。
0733nobodyさん2006/04/17(月) 22:43:52ID:???
pluginて書いたこと無いが、
opendirでpluginディレクトリ開いて順に名前を取得したらrequireなりuseなりすりゃいんじゃないの?

てか明らかにuse strict;したこと無いやつにそこまで無理するなと言いたい
0734nobodyさん2006/04/17(月) 23:01:48ID:???
これ参考にすればよくなくね?

sub load_plugin {
my($self, $config) = @_;

my $module = delete $config->{module};
$module =~ s/^Plagger::Plugin:://;
$module = "Plagger::Plugin::$module";

if (my $path = $self->plugins_path->{$module}) {
eval { require $path } or die $@;
} else {
$module->require or die $@;
}

$self->log(info => "plugin $module loaded.");

my $plugin = $module->new($config);
$plugin->cache( Plagger::CacheProxy->new($plugin, $self->cache) );
$plugin->register($self);

push @{$self->{plugins}}, $plugin;
}
0735nobodyさん2006/04/17(月) 23:22:47ID:???
無意味なエスケープ大杉
0736nobodyさん2006/04/17(月) 23:23:20ID:???
735は>>732
0737nobodyさん2006/04/17(月) 23:38:05ID:???
うごきゃええねんうごきゃ
0738nobodyさん2006/04/18(火) 00:03:22ID:???
>>734
はてブからきますた
0739nobodyさん2006/04/18(火) 00:49:34ID:???
それどこのはてブ?

http://ex14.2ch.net/test/read.cgi/news4vip/1145258206/
0740nobodyさん2006/04/18(火) 00:52:31ID:???
>733
require した際に各プラグインが最初に実行する関数をたとえば pluginmain としたとして、
そうすると複数のプラグインで関数名がだぶることになって -W 付で実行してるとエラー吐かれるんですよ
だから各プラグインで実行される関数名をプラグインから指定すりゃまぁなんとかなるかなって思った次第です

>734
その関数に渡される値が何なのかわからないからどうとも言えないかなぁ


とりあえず真面目にパッケージとか学んでみようかと思う
0741nobodyさん2006/04/18(火) 01:07:27ID:???
>>740
> その関数に渡される値が何なのかわからないからどうとも言えないかなぁ

調べればわかるのでは?
0742nobodyさん2006/04/18(火) 02:36:43ID:???
>>740
#!/usr/bin/perl -W
use strict;
{ package Foo; sub new { bless { foo => 'foo' } } sub var { $_[0]->{'foo'} } }
{ package Bar; sub new { bless { bar => 'bar' } } sub var { $_[0]->{'bar'} } }
{ package Baz; sub new { bless { baz => 'baz' } } sub var { $_[0]->{'baz'} } }
print join ',', Foo->new->var, Bar->new->var, Baz->new->var;
__END__
http://www.kt.rim.or.jp/~kbk/perl5.005/perlmod.html
http://www.kt.rim.or.jp/~kbk/perl5.005/perlobj.html
http://www.kt.rim.or.jp/~kbk/perl5.005/perlbot.html
http://perl.infoware.ne.jp/documents/perlboot.ja.html
http://search.cpan.org/~miyagawa/Plagger-0.6.3/
0743nobodyさん2006/04/18(火) 10:30:14ID:???
733です。

パッケージなんて簡単だろ。
package Plugin::Foo
sub baa{

}
....

て書いてrequire Plugin::Foo;
名前空間を無かったことにしたいなら呼び出し先でuse Exporter;しろ
0744nobodyさん2006/04/18(火) 13:20:05ID:???
正規表現なんですが・・・、
掲示板等でタグを使用不可にしたいのですが、
&は変換するけど、&はそのままで除外するという場合
どのようにすればよいでしょうか?

$str =~ s/&[^(amp;)]/&/g;

このようにしたのですがうまくいきません。
07457442006/04/18(火) 13:23:54ID:???
あれ?表示されなかった。
訂正します。全角にしました。

&は変換するけど、&amp;はそのままで除外するという場合です。
$str =~ s/&[^(amp;)]/&amp;/g;

うまくいきません。
0746nobodyさん2006/04/18(火) 14:13:25ID:???
s/[^(&amp;)]&/&amp;/ig;
0747nobodyさんNGNG
>>744
それ自体を実現するには否定先読みを使えば良い
$str =~ s/&(?!amp;)/&amp;/g;

が、もしかすると、やりたいことは置換の順序を変えればできたりしない?
$str =~ s/&/&amp;/g;
$str =~ s/</&lt;/g;
$str =~ s/>/&gt;/g;
$str =~ s/"/&quot;/g;
07487442006/04/18(火) 14:45:53ID:pGVz01kP
>>746
出来ませんでした。ありがとうございました。

>>747
おぉ!出来ました。ありがとうございました。
否定先読みというのは初めて知りました。
ちなみに「やりたいこと〜」でご指摘されてることは私の想定していたことではありませんが、
よく見るそのやり方の順序に意味があったとは知りませんでした。
なるほど、勉強になります。
0749nobodyさん2006/04/19(水) 16:50:38ID:YxQG/IvK
外国からのスパムに悩まされてます。
で、ある文字列数以上の長さ以上で
  文字列($comment)に全角がなかったら スパムって判定をしたいと考えてます。

見よう見真似で
---------------------------------------------------------
if(length($comment) > 128){ #128文字以上の場合チェック
$spam_flg = 1;

if ($comment =~ /[\xA1-\xFE][\xA1-\xFE]/){ #全角が含まれてるから日本語
$spam_flg = 0;
}
if($spam_flg > 0){ #多分に外国のお方。
Error("スパムでした");
}
}
----------------------------------------------------------
でやったのですが
判定が成功せずに、全文半角でも $spam_flg= 0 になっちゃいます。
if ($comment =~ /[\x80-\xff]/) {  でもだめでした。
文字コードはEUCです。

 どなたか m(_ _"m)ペコリ
0750nobodyさん2006/04/19(水) 17:41:23ID:???
ttp://www.kanzaki.com/docs/jcode.html#euc
0751nobodyさん2006/04/19(水) 17:52:53ID:???
教えてください。

Jcodeを使うときに、

$str = jcode($str)->mime_encode;

で、メールのヘッダ部分を作れ、

$str = jcode($str)->mime_decode->sjis;

で元に戻りますよね?
で、同じことをEncodeモジュールでやろうとして

use Encode 'decode', 'encode';
my $str = 'ソース焼きそば十杯おいしいな☆';
my $header = encode('MIME-Header-ISO_2022_JP', $str);

だとエンコードされた文字列がおかしく(Jcodeと比較して)、さらにデコードの方法がわかりません。

my $str =
'=?ISO-2022-JP?B?P1w/Wz9YPxskKEQ/PxsoQj8/Pz8bJChEPz8bKEJcP3Q/Pz8/Pz8/Pz8/?=
=?ISO-2022-JP?B?Pz9cPz8/GyQoRD8/GyhCPz8/Pz8/Pz8/Pz8/?=';
$str = decode('MIME-Header-ISO_2022_JP', $str);

だと、”MIME B unsupported..”

Encode::from_to($str,'MIME-Header-ISO_2022_JP','shiftjis');
でも同じ・・・
ソースはsjis書いています。
よろしくお願いします・・・。
0752nobodyさん2006/04/19(水) 18:11:24ID:???
encodeはUTFフラグ付しか受け付けなかった希ガス
07537492006/04/19(水) 20:40:17ID:tcTD8ojr
>>750さん、ありがとうです。
でも、全角文字の判別がよくわかんないです
 もうちょっと。。 m(_ _"m)ペコリ
0754nobodyさん2006/04/20(木) 11:17:19ID:???
>751
# Shift_JISで保存
use Encode qw/encode decode/;
use Jcode;

my $str = 'ソース焼きそば十杯おいしいな☆';

# Jcode
my $header_jcode = jcode($str)->mime_encode;
print "$header_jcode\n";
print jcode($header_jcode)->mime_decode->sjis, "\n";

# Encode
my $header_encode = encode('MIME-HEADER-ISO_2022_JP', decode('Shift_JIS', $str));
print "$header_encode\n";
my $decoded = encode('Shift_JIS', decode('MIME-HEADER', $header_encode));
print "$decoded\n";
07557512006/04/20(木) 17:25:34ID:???
>>752
>>754

754でできました。ありがとう。
0756nobodyさん2006/04/20(木) 17:58:44ID:???
千奈美にdecodeでフラグ付UTFに変換してる
0757nobodyさん2006/04/20(木) 22:59:54ID:???
>>749
128文字以上。って条件を忘れてテストしてないかい?
0758nobodyさん2006/04/21(金) 16:34:52ID:c29HAKrq
ある変数に全角文字が1文字入ってるのですが、
この1文字が「漢字」か「漢字以外」かを判別する方法を教えて下さい。
文字コードはEUC使ってますが、UTF-8でも良いです。
よろしくお願い致します。
0759nobodyさん2006/04/21(金) 16:39:19ID:???
/[亜-熙]/ 漢字の範囲
JperlかPerl5.8以降を使ってねん
0760nobodyさん2006/04/21(金) 16:40:03ID:???
あ、Jperlはshiftjisだっけ。条件からいきなり外れて失礼。
0761nobodyさん2006/04/21(金) 17:12:42ID:???
>>758
1バイト目が\xB0以上だったら漢字でいいんじゃない
0762nobodyさん2006/04/21(金) 17:17:29ID:???
>>758
\x8Fで始まる3バイト漢字を忘れていた
0763nobodyさん2006/04/21(金) 17:20:11ID:c29HAKrq
>>759
ありがとうございます。やってみたのですが、上手く動きません。
ひらがなにもカタカナにもマッチしてしまいます。

試しに

/あ/

だと、ちゃんと「あ」にマッチするのですが、

/[あ]/

だと、「あ」以外の全ての文字にマッチしてしまいます。
どうも日本語で文字クラスが使えないっぽい…。

Perlのバージョンは5.8.5、EUC環境です。
何か初歩的なまちがいをしてるような気もしますが、
もしありがちなミスなどあれば教えて下さい。
よろしくお願い致します。
07647632006/04/21(金) 17:51:19ID:???
すいません。うまくいかないのでutf-8でやったら
全て解決しました。
みなさん、ありがとうございました。
0765nobodyさん2006/04/21(金) 23:19:35ID:???
あるフォルダαに入っているファイルA、B、C のパーミッションを全て統一したい時はどういった方法があるのでしょうか?
ABCは数が変動する為指定する事ができずお手上げで…。
0766nobodyさん2006/04/21(金) 23:20:59ID:???
そういう質問はお手上げで。w
0767nobodyさん2006/04/21(金) 23:32:11ID:???
system 'chmod -R 000 /path/to/folder';
0768nobodyさん2006/04/22(土) 00:07:01ID:???
>>767
頭が悪い例を示してますね。
0769nobodyさん2006/04/22(土) 00:27:08ID:???
まぁ、君よりはマシだけどね
0770nobodyさん2006/04/22(土) 00:40:06ID:???
>ABCは数が変動する為
ファイル数が変動するってことか?
readdirでファイル一覧取得してchmodじゃだめなのか?

いいたいことを勘違いしてたらすまそ
0771nobodyさん2006/04/22(土) 04:40:48ID:???
File::chmod使って

use File::chmod;

chmod(0666, <*>);

とか?
0772nobodyさん2006/04/22(土) 08:49:21ID:???
すみません、お願いします。

ファイル名を変えるのに、単純に、
rename "AB1234.txt","AB0000.txt";
は上手くできるのですが、

ディレクトリ内のファイルの探してから名前を変えようと
したら上手くいきません。何がダメなんでしょうか?
use File::Find;
$dir="./";
find(sub { push @files, $File::Find::name if -f }, $dir);
foreach(@files){
if(substr($_,2,2) eq "AB"){
$file1=$_;
}
}
$file2="AB0000.txt";
rename "$file1","$file2";

よろしくお願いします。
0773nobodyさん2006/04/22(土) 11:03:29ID:???
if(substr($_,2,2) eq "AB")

この条件に当てはまらなかった時、$file1はどうなる?
0774nobodyさん2006/04/22(土) 11:12:22ID:???
っていうか、そもそもsubstrのパラメータがおかしいじゃん。

print substr("AB1234.txt", 2, 2);

を見てみる所から始めないと。デバッグの基本だよ。
Perl以外の言語経験があるかどうかは分からないけど、このレベルだと
何かプログラムと呼べる物を完成させるのは難しいと思う。
0775nobodyさん2006/04/22(土) 11:33:07ID:???
if(substr($_,2,2) eq "AB") からして間違ってたか。→ "12"
ただしこれでも、/^..12(.*)/のファイルが全部条件に当てはまるので
どっちにしてもダメ。
やりたい事をぼかすのではなく、もっと正確に書かないと…。

カレントを見るならFile::Findなんか使う必要もないし、全体的に意味不明。
07767512006/04/22(土) 12:35:38ID:???
>>756
SJISやEUCでソース書く限り、その処理が全部について回るのか・・・
ありがとう。

>>772
単純にforeach(@files)の中で

if($_ =~ /^AB/){
  ・・・
}

でだめなん?

$_ =~ /^AB\d{4}/
$_ =~ /^AB\d{4}.txt$/

とか、大文字小文字区別したくなかったら最後に/iとか。
意味が違う?
07777722006/04/22(土) 19:08:13ID:???
レスありがとうございます。

if(substr($_,2,2) eq "AB"){ の件なんですけど、

@filesで格納されているのは、 "./AB1234.txt" となるので、
"./"を外すためにやってます。

カレントディレクトリの中に入っている ABで始まるファイルを
見つけて、それのファイル名を変更したいのです。
0778nobodyさん2006/04/22(土) 19:18:24ID:???
ああ、申し訳ない。「./」が入るんだね。
じゃあこれでどうよ。

@files = grep /^AB/, glob "*";
rename shift @files, "AB0000.txt";
07797722006/04/22(土) 19:35:58ID:???
すみません、ありがとうございました。
じっくり考えたらこういうやり方がある事がわかりました。

@files=glob("AB*.txt");
$file1=$files[0];
$file2="AB9999.html";
$res = rename "$file1","$file2";

まだまだ勉強不足を痛感しました。(汗)
0780 ◆TWARamEjuA NGNG
(´-`).。oO(ファイル名が存在しなかったときはどうなるんだろう。。。)
07817722006/04/22(土) 21:13:23ID:???
>>780
ファイルは必ずあるので大丈夫です。
0782 ◆TWARamEjuA NGNG
opendir my $dir_handle, './' or die "Can not open directry.:$!";
foreach my $source_file (grep /^AB/, readdir $dir_handle) {
 $source_file or die "file not found.:$!";
 rename $source_file, $dist_filename
  ? last
  : die "Can not rename file.:$!"
}
closedir $dir_handle;

こんな感じかしら。。。
と思ったら、、、

>>781
そうですか。スマソ。
0783nobodyさん2006/04/23(日) 00:45:55ID:???
772じゃないけど・・・

>782
くじけずにこれからもよろしこですm(_ _)m
0784nobodyさん2006/04/23(日) 06:58:39ID:???
>>782
メンテナンス性のわるいコードでつね。
0785nobodyさん2006/04/23(日) 07:31:46ID:???
>>784
とてもわかりやすいと思います。
メンテナンス性のいい例を提示してください。
0786nobodyさん2006/04/23(日) 07:33:44ID:???
>>785
馬鹿が背伸びして知る必要もないと思われ。
0787nobodyさん2006/04/23(日) 07:38:00ID:???
目くそうんこだな
0788nobodyさん2006/04/23(日) 07:44:07ID:???
めくそはなくそではなく、うんこなのか。
0789nobodyさん2006/04/23(日) 07:45:46ID:???
AWK Pythonだな
0790nobodyさん2006/04/23(日) 07:47:08ID:???
それなんてスレ違い言語?
0791nobodyさん2006/04/23(日) 11:07:48ID:???
>>784-790
            _,,‐─-v‐、,,、
         ,,-‐'": : : : : : : : : : `ヽ
        /: : : : : : : ,,__ : : : : : : \
      r': ,、,,.-─''"゛   ミ : : : : : : : 'i、
       `/ /        ミ_ : : : : : : :,、}
      i l    _,,..-‐^‐-、 `゙i: : : /l.l|
      i、}‐-、 ヽ;;/,rェッ;;'"  ゙ー' 9iリ!
      |  ',tテi  ヽ='"     ゞ t'
       |  'i"´| , -、         ヽ-、,,___
       |  '}、 !,,tu'"  ヽ、  ,l: ‐-‐" }: : : : :
       }   lヽ、__,,,.-‐ヽ  /: : : : : : /|: : : : :
     ,r/  /: : :ヽー‐'  ノ: : : : : : : / .|: : : : :
     /: \ /: : : : : 丶,, -''_: : : : : : /  |: : : : :
    /: : : : :ヽ/: : : : : : : ヾ''‐--‐ヽ   |: : : : :
   /: : : : : : : : : : : : : : : : : : ヽ\: : /   |: : : : :

     ビップ・デ・ヤレー[Vuip De Yale]
         (1955〜 フランス)
0792nobodyさん2006/04/23(日) 13:44:20ID:???
まだ生きてんのか
0793nobodyさん2006/04/23(日) 16:36:39ID:???
ム板のスレにもこのシリーズのAA貼り付けるガキが沸いてるな
いい加減寒いしウザいんでやめて欲しいのだが
0794nobodyさん2006/04/23(日) 17:29:00ID:???
これってハッシュ?というものを引数にしているのですか?
名前の前に”-”がついているのは何か意味があるのでしょうか?
_____________________________________________________________________________________

ほとんどのCGI.pmルーチンはさまざまな引数を受け取ります。
中には20ものオプションの引数を受取るものもあります!
このインターフェースを簡単にするため、すべてのルーチンは以下のような
名前付き引数呼び出しスタイルを使います:

print $q->header(-type=>'image/gif',-expires=>'+3d');
0795nobodyさん2006/04/23(日) 17:35:28ID:???
書いてある通りなのだが、何がわからんの?
0796nobodyさん2006/04/23(日) 17:50:30ID:???
CGI.pm と CGI::Session を使ってCGIを組んでいます。

my @hoge;
my $ref = $session -> param('hoge');
if (ref($ref) eq 'ARRAY'){
@hoge = @$ref;
}else{
push(@hoge,$ref);
}

セッションのパラメータから値を受け取りたいのですが、
'hoge'が配列の場合はリファレンスが返り値になってしまい、
上記のように、型を調べなければならず面倒です。

my @hoge = $session -> param('hoge');

このように1行で済ませたいのですが、どのようにすれば宜しいでしょうか?
よろしくお願いします。
0797nobodyさん2006/04/23(日) 18:14:18ID:???
>>794
是非とも作者に聞いてくれー。
構造的にはCGI.pm内部で使われているCGI::Utilのrearrange()が
パラメータの名前を扱うときは'-'を付ける仕様になってるから。

>>796
せめて二行なら。
push(@hoge, (ref($ref) eq 'ARRAY' ? @{$ref} : $ref));

ずばりその一行だけなら大仰だけどアダプタ作る。
適当にやるなら、サブルーチン作ってそれを呼び出すとか。
0798nobodyさん2006/04/23(日) 20:28:04ID:???
>>796
試さずに書いてみるけど、ダミーのhogeを2つほどくっつけて、
常にリファレンスを返値にするようにしたらいいんじゃないの?
0799nobodyさんNGNG
>>794
その下にある例の
print $q->header('text/html');
のような形式と明確に区別するためかと
0800nobodyさん2006/04/24(月) 02:29:53ID:???
公開ディレクトリ外にある画像などにアクセスするためのCGIを作ってみました。
もし画像が存在しなくてopenできないとき、404エラーにすることはできるでしょうか。

適当にSTDERRに「404 File not found」とか書いてみましたが、
apacheのログにはステータスコード500が残ってしまいます(dieとかしたため)。
宜しくお願いします。
0801nobodyさん2006/04/24(月) 02:30:49ID:???
つ NPH
0802nobodyさん2006/04/24(月) 03:12:31ID:???
「つ」っての流行ってるんですか(笑)
まさかと思って今ググって僕へのメッセージだと気づきました。
ありがとうございます。
0803nobodyさんNGNG
>>800
ヘッダに
Status: 404 Not Found
って手もある
0804nobodyさん2006/04/24(月) 03:56:30ID:???
ありがとうございます。Statusのほうが簡単そうなので取り合えずやってみました。
下記のようなエラー処理で、それっぽいログが残るようになりました。これでいいのか
謎ですが。

print "Status: 404 Not Found \n"
print STDERR "File does not exist: $ENV{'DOCUMENT_ROOT'}$ENV{'SCRIPT_NAME'}?f=$filename";
0805nobodyさん2006/04/24(月) 07:47:18ID:3duczMdL
汎用性の高いものにしようと思い、
吐き出すhtmlのhead要素の属性値を変数にしてみたんですが、
動かず、perlチェックなどに掛けてみると、それを定義する部分にこのようなエラーが出ました。

Name "main::keyword" used only once: possible typo at hospital.cgi line 11.

11行目の定義してる部分です。
何か使ってはいけない変数名とかあるのでしょうか?
分かる方お教え下さいますようお願いします。
0806nobodyさん2006/04/24(月) 08:07:54ID:???
>>805
use strictしたほうがいい。
それは置いておくとして。

それエラーじゃなくて警告。
$keywordという変数がスクリプト中で一度しか使われてないから打ち間違いじゃない?
とPerlが気を利かせて言ってる。
変数名間違えてるんじゃないの?
08078052006/04/24(月) 08:32:58ID:3duczMdL
>>806
レスありがとうございます。
変数はrequireでplファイルを読み込んだ先で使っているのでそのような警告が出ていたようです。

use strict;を入れてチェックにかけると
Global symbol "$keywords" requires explicit package name at index.cgi 行番号 12.
というエラーが全ての変数で出ました。

サーバーのperlチェッカーでは
評価
◎ 所有者は問題ありません
◎ グループは問題ありません
◎ パーミッションに問題はありません
◎ 実行ディレクトリに問題はありません
◎ ヘッダ情報に問題はありません
◎ 改行コードに問題はありません
◎ 文法上の問題はありません

なのに500Internal Server Errorエラーで動きません。
考えられる原因は何がありますでしょうか?
ご教授宜しくお願い致します。
0808nobodyさん2006/04/24(月) 08:48:34ID:???
>>807
いや、だからstrictが出したエラーが全てなんだが、英語読めないのか?
500が嫌ならstrict外して使えばいいだけだけど。
>>805のメッセージだけなら別に問題ないし。
08098052006/04/24(月) 08:55:30ID:3duczMdL
>>808
レスありがとうございます。
strict外して使って500エラーなんです。

外した状態でエラーメッセージは>>805のみです。
0810nobodyさん2006/04/24(月) 08:57:41ID:???
何も考えずにuse strictいれたのか…。
なにも考えずに書かれたスクリプトでいきなり書いても無理。

んで動かない理由で500サーバエラーとか言われても何もわからない。

500 Internal Server Errorは、適切なContent-Typeヘッダが出力されませんでしたという、Apacheの結果的な応答。
実行したプログラムが出力したエラーはApacheのエラーログに書いてあるからそっちの内容がないとわからないよ。

ついでに、>>805では$keywordなのに>>807では$keywordsなんだけど、変数名大丈夫か…。
08118052006/04/24(月) 09:06:05ID:???
>>810
レスありがとうございます。
Content-Typeを確認したら間違っていました。
おかげさまで解決しました。
ありがとうございました。
0812nobodyさん2006/04/24(月) 09:24:55ID:???
>>811
それ基本w
ついでにPerlコーディングとは関係ねーw
0813nobodyさん2006/04/24(月) 09:30:31ID:3duczMdL
>>812
基本でしたか。
お手数おかけしました。
みなさん本当に有難う御座いました。
0814nobodyさん2006/04/24(月) 10:48:05ID:???
>>797
>>799
ありがとうございます。
もう一つの質問の回答もお願いします。

この引数、ハッシュという形式に似ているように思われるのですが、ハッシュなのでしょうか?
0815nobodyさん2006/04/24(月) 10:54:21ID:???
postさせたいんですがスタイルシート使っても
へんてこりんなデザインになってします。

フォームボタン使わずにgetみたいにpostさせる方法ってありますでしょうか?
0816nobodyさん2006/04/24(月) 10:58:28ID:???
>>815
つ「Javascript」&「スレ違い」
0817nobodyさん2006/04/24(月) 11:18:38ID:???
JavaScriptですかぁ。。。 getにするかなぁ
0818nobodyさん2006/04/24(月) 11:34:32ID:???
つsocket
スレ違わないが、質問者の意図からはすれ違ってる予感
0819nobodyさん2006/04/24(月) 11:41:57ID:???
スタイルシートって時点で>>816が正しい気がする
0820nobodyさん2006/04/24(月) 12:26:56ID:???
>>797さんご指摘のrearrange()関数を見ると、引数がハッシュであることがわかりました。

sub rearrange {
my($order,@param) = @_;
return () unless @param;

if (ref($param[0]) eq 'HASH') {
@param = %{$param[0]};
} else {
return @param
unless (defined($param[0]) && substr($param[0],0,1) eq '-');
}
0821nobodyさん2006/04/24(月) 17:24:37ID:???
すみません。

DOS窓なんかでファイルを結合するとき

copy a.txt+b.txt

でできることを、perl「だけ」でできますか?(=system/exec使用禁止なんです)


open (IN,b.txt);
while(<IN>){
 my $ftmp = $_;
 open (OUT,'>>a.txt');
 print OUT $ftmp;
 close OUT;
 }
close IN;
}

じゃどうにもこうにも・・・(filehandle "IN"は閉じられていますと警告が出て、できるファイルが0バイト)
a.txtは200MBほど、b.txtも5MBほどです。
0822nobodyさん2006/04/24(月) 17:32:21ID:???
>>821
せめて初歩的なデバッグくらいはしましょう。
INはwhileループの終わりで、次を読む前に閉じてますよ。
それとOUTを一行ずつopen,closeするのは無駄なので
whileループの外に出しましょう。
0823nobodyさん2006/04/24(月) 17:43:02ID:???
>>820
ハッシュリファレンスも処理するってことで、通常はリストで指定でしょ。

use CGI qw(:cgi);

print header(-type=>'text/html', -charset=>'Shift_JIS'); # リスト
print header('-type', 'text/html', '-charset', 'EUC-JP'); # リスト
print header({-type=>'text/html', -charset=>'UTF-8'}); # ハッシュリファレンス
0824nobodyさん2006/04/24(月) 20:09:00ID:???
utf8での記述について質問です
perl 5.8.4 です
//-- ソースここから
use utf8;
use strict;
print "content-type: text/html; charset=UTF-8\n\n";
print "run OK\n";
exit;
--// ここまで

ソースをutf8で保存 → 500 Error
上記を BOM 付で試みる → 500 Error

ソースをutf8で保存、use utf8 → 500 Error
上記を BOM 付で試みる → 500 Error

どちらも 「一行目に #! が無い」 といってエラーになっています

utf で記述する際は他に気をつけることってあるのでしょうか?
ググっても 「utf8で保存してuse utf8すりゃいい」とまでしかかかれておらず四苦八苦してます
0825nobodyさん2006/04/24(月) 20:12:31ID:???
おいwwwwwwwww
0826nobodyさん2006/04/24(月) 20:14:14ID:???
>>824
実際無いじゃん
それは置いといてBOM無し(UTF-8N)であることは確認済みなんだろうな?
0827nobodyさん2006/04/24(月) 20:18:46ID:???
>>823
ありがとう。
{ }でくくってはじめてハッシュになるんですね。
0828nobodyさん2006/04/24(月) 20:21:05ID:???
>824
禿ワロタwwwwwwww
0829nobodyさん2006/04/24(月) 20:23:48ID:???
    o-o、
    ('A`)  メガネメガネ
    ノ ノ)_
0830nobodyさん2006/04/24(月) 20:32:17ID:???
ソースに #! の行抜けてました orz

実際のソースでは一行目に #!/usr/bin/perl の行はあり、
EUCで保存しなおすとスクリプトは動くことは確認しています。
UTF8のBOM付、BOM無で保存しなおすと500エラーになります
0831nobodyさん2006/04/24(月) 20:37:18ID:???
本当にBOM無しなのか?
BOM無しで保存した奴アップして見せてみ?
0832nobodyさん2006/04/24(月) 20:37:23ID:???
>826
EmEditorにてBOM付、無の2通りにて保存し、その2通りでエラーが出ることを確認しています
EmEditorは5.00.1です。
0833nobodyさん2006/04/24(月) 20:54:55ID:???
問題解決しました。

メインで編集していたEmEditorは5.00だったのですが、別PCがEmEditor5.00.1で、
こちらで保存したものは動作しました

先ほどの書き込みでEmEditorは5.00.1とは書きましたが、メインPCと別PCとのEmEditorが
同じバージョンだと信じ込んでしまっており、先の書き込みおよびバージョン確認が
別PCだったため5.00.1と書きました
0834nobodyさん2006/04/24(月) 21:35:58ID:???
( ;∀;) イイハナシダナー
0835nobodyさん2006/04/24(月) 21:46:39ID:???
( ;∀;) カンドーシタ
0836nobodyさん2006/04/24(月) 22:16:15ID:???
>>797 >>798

てっきり自分のやり方が不味いと思っていましたが、仕様だと判り安心しました
サクッとサブルーチンを組んで処理させます
ありがとうございました
0837nobodyさん2006/04/24(月) 22:22:39ID:???
画像などのファイルのアップロードではcgi-libを使うのがもはや常識なのでしょうか?
掲示板程度はようやく作れるようになったので、アップローダーにも手を出してみたいと思ったのですが、
配布されているようなものはcgi-libを使っているのが多くて、
これを覚えてもアップロードの肝心な部分を勉強できないのではないかと思っているのですが。
0838nobodyさん2006/04/24(月) 22:27:49ID:???
それ CGI.pm でいいんじゃね?
0839nobodyさんNGNG
>>837
それは君がどういう目的でそれを書こうとしているかによる。
規格などを含めて勉強したい(だけ)ならフルスクラッチすることをお勧めするよ。
RFCをあっちこっち読み漁って書くことになるから結構勉強になる。
しかしそれを実用しようと考えているなら、既成モジュールなり何なりを薦めるが。
# ライブラリにcgi-libを使うべきかはフレームの元だから敢えて触れないことにしておく
0840nobodyさんNGNG
>>837
ttp://www.studyinghttp.net/
ここが勉強するには持って来いだと思う
既存のフルスクラッチのアップローダーとかのソース見てると
ほとんど使う事のない(例:multipart/mixed)とか、省いてるのも多く見られる
0841nobodyさん2006/04/26(水) 04:23:21ID:hyGH423P
すみません、
http://hp.bird.to/さんの所の「私書箱SP(CGI)」
を使用させて頂こうと思っているのですが
ひとつだけ中をいじりたい事があるんです。
(ちなみに、作者様はいじる事を許可されています。)

で、HTMLでサイトを作るくらいは自分も出来るんですが
Perlの知識はまったく無いので自分なりにやっても
失敗してしまいます。
どうか、知識のある方叶えて頂けないでしょうか?

えっと、長くなるので、何度かレスさせて下さい。

0842nobodyさん2006/04/26(水) 04:24:10ID:hyGH423P
sub looking_list{
($cookie_name,$cookie_pass,$cookie_number) = get_cookie();
($c_cook,$c_name)=split(/:/,$cookie_name);
($c_cook,$c_pass)=split(/:/,$cookie_pass);
($c_cook,$c_number)=split(/:/,$cookie_number);
print <<END_OF_TEXT;
 <p>
<font color="$titlecolor" size=6>$html_title</font><p>
$error_code<p>
<form method="POST" action="$script_url">
<input type="hidden" name='command' value='access'>
<table border=1>
<TR><TH colspan=2>自分の私書箱にアクセス!!</TH></TR>
<tr><td align=right>登録名</td><td><input type="text" size=20 name="name" value="$c_name"></td></tr>
<tr><td align=right>パスワード</td><td><input type="text" size=20 name="pass" value="$c_pass"></td></tr>
<tr><td align=right>私書箱番号</td><td><input type="text" size=20 name="number" value="$c_number"></td></tr>
<TR><TD align=center colspan=2><input type="submit" value="送信"></TD></TR>
</table>
</form><P>
0843nobodyさん2006/04/26(水) 04:24:41ID:hyGH423P
<form method="POST" action="$script_url">
<table border=1>
<tr><th>ご用件をどうぞ!!</th></tr>
<tr><td>
<input type="radio" checked name='command' value='write'>私書箱に書き込む</td></tr>
<tr><td>
<input type="radio" name='command' value='mypost_regist'>私書箱の新規登録</td></tr>
<tr><td>
<input type="radio" name='command' value='mypost_delete'>私書箱の登録削除
</td></tr>
<tr><td align=center>
<input type="submit" value="送信">
</td></tr>
</table>
</form>
<form method="POST" action="$script_url">
<table width=90%>
<tr><td nowrap>
<input type="text" size=8 name="secret_pass">
<input type="submit" value="管理人専用">
</td>
<td nowrap align=right>
<font size=2><A HREF="http://hp.bird.to/index.html" target="_top">私書箱SP Ver.1.45(C)HPサービス</A></font>
</td>
</tr></table>
</form>
END_OF_TEXT
}
0844nobodyさん2006/04/26(水) 04:25:41ID:hyGH423P
>>842>>843はそのまま続いてましてこれを読み込ませると
画面に
「自分の私書箱にアクセス」といったBOXと
その下に「ご用件をどうぞ」のBOXが表示されるんです。

で、僕はこれの上下を入れ替えたいんです。
ただそれだけなんです。

「ご用件をどうぞ」のBOXが上に来て
「自分の私書箱にアクセス」のが下に表示されているといった感じに
したいんです。

でも、単純にプログラム文を上下入れ替えただけでは
駄目みたいで、、、 表示自体は上下変わってくれたんですが
送信押してもうんともすんとも動かず
機能しなくなっているのです。

どういった入れ替え方をすれば
上下変わってくれるんでしょうか?
すみません、ほんと。
0845nobodyさん2006/04/26(水) 06:23:13ID:???
【 スクリプト改造依頼スレ 】(丸投げ) part5
http://pc8.2ch.net/test/read.cgi/php/1141174205/
0846nobodyさん2006/04/26(水) 06:55:55ID:hyGH423P
>>845
ここで良いと思ったんですが
質問してるだけですし。

改造というほどのもんじゃ無いと思うんですが。

とりあえず、ここで聞きたいですよ。
専門知識があれば一瞬で解決する問題なはずですから。
0847nobodyさん2006/04/26(水) 08:00:11ID:???
ググレカス
0848nobodyさん2006/04/26(水) 08:00:25ID:???
>846
>改造というほどのもんじゃ無いと思うんですが。

Perlのことなにもわかってないし、わかる気すらない。って感じですね。
これは、質問と言ったレベルでなく、丸投げだし。

答えるのは簡単だけど、今後こういう丸投げが増えると困るのでスクリプト改造スレに逝ってください
0849nobodyさん2006/04/26(水) 08:12:06ID:hyGH423P
>>848
>丸投げだし。

丸投げってなんですか?
「なにもして無い奴が」って事でしょうか?
だったら違いますよ。
このスレに質問しに来たのは
自分なりにはチャレンジしての結果です。

>答えるのは簡単だけど、

そうでしょうね。
HTMLでサイト作るくらいは出来る僕からしたら
知ってる人間から見れば、
しごく簡単な質問をしてると想像出来ます。

だからこそ、教えてほしいんです。
時間をかけたくないんですよ。
「Perlをわかる気すら」って当然ですよ。
覚えたいわけじゃ無いんです。
ただ、そこだけが知りたいんです。

お願いします。
0850nobodyさん2006/04/26(水) 08:13:57ID:hyGH423P
ってか
>今後こういう丸投げが増えると困るのでスクリプト改造スレに逝ってください

たらい回しって言うんですよね、それ。
面倒だからって事でしょ。
性格悪いですよね、わかるのにそんな理由で教えないなんて。
0851質問です。2006/04/26(水) 08:16:13ID:hyGH423P
すみません、
http://hp.bird.to/さんの所の「私書箱SP(CGI)」
を使用させて頂こうと思っているのですが
ひとつだけ中をいじりたい事があるんです。
(ちなみに、作者様はいじる事を許可されています。)

で、HTMLでサイトを作るくらいは自分も出来るんですが
Perlの知識はまったく無いので自分なりにやっても
失敗してしまいます。
どうか、知識のある方叶えて頂けないでしょうか?

えっと、長くなるので、何度かレスさせて下さい。

0852質問させて下さい2006/04/26(水) 08:16:46ID:hyGH423P
sub looking_list{
($cookie_name,$cookie_pass,$cookie_number) = get_cookie();
($c_cook,$c_name)=split(/:/,$cookie_name);
($c_cook,$c_pass)=split(/:/,$cookie_pass);
($c_cook,$c_number)=split(/:/,$cookie_number);
print <<END_OF_TEXT;
 <p>
<font color="$titlecolor" size=6>$html_title</font><p>
$error_code<p>
<form method="POST" action="$script_url">
<input type="hidden" name='command' value='access'>
<table border=1>
<TR><TH colspan=2>自分の私書箱にアクセス!!</TH></TR>
<tr><td align=right>登録名</td><td><input type="text" size=20 name="name" value="$c_name"></td></tr>
<tr><td align=right>パスワード</td><td><input type="text" size=20 name="pass" value="$c_pass"></td></tr>
<tr><td align=right>私書箱番号</td><td><input type="text" size=20 name="number" value="$c_number"></td></tr>
<TR><TD align=center colspan=2><input type="submit" value="送信"></TD></TR>
</table>
</form><P>
0853質問させてください2006/04/26(水) 08:17:22ID:hyGH423P
<form method="POST" action="$script_url">
<table border=1>
<tr><th>ご用件をどうぞ!!</th></tr>
<tr><td>
<input type="radio" checked name='command' value='write'>私書箱に書き込む</td></tr>
<tr><td>
<input type="radio" name='command' value='mypost_regist'>私書箱の新規登録</td></tr>
<tr><td>
<input type="radio" name='command' value='mypost_delete'>私書箱の登録削除
</td></tr>
<tr><td align=center>
<input type="submit" value="送信">
</td></tr>
</table>
</form>
<form method="POST" action="$script_url">
<table width=90%>
<tr><td nowrap>
<input type="text" size=8 name="secret_pass">
<input type="submit" value="管理人専用">
</td>
<td nowrap align=right>
<font size=2><A HREF="http://hp.bird.to/index.html" target="_top">私書箱SP Ver.1.45(C)HPサービス</A></font>
</td>
</tr></table>
</form>
END_OF_TEXT
}
0854質問させてください2006/04/26(水) 08:18:08ID:hyGH423P
>>852>>853はそのまま続いてましてこれを読み込ませると
画面に
「自分の私書箱にアクセス」といったBOXと
その下に「ご用件をどうぞ」のBOXが表示されるんです。

で、僕はこれの上下を入れ替えたいんです。
ただそれだけなんです。

「ご用件をどうぞ」のBOXが上に来て
「自分の私書箱にアクセス」のが下に表示されているといった感じに
したいんです。

でも、単純にプログラム文を上下入れ替えただけでは
駄目みたいで、、、 表示自体は上下変わってくれたんですが
送信押してもうんともすんとも動かず
機能しなくなっているのです。

どういった入れ替え方をすれば
上下変わってくれるんでしょうか?
すみません、ほんと。

0855nobodyさん2006/04/26(水) 08:45:34ID:???
なんだこのヴァカは
0856nobodyさん2006/04/26(水) 08:46:02ID:???
またあらしか
0857nobodyさん2006/04/26(水) 08:47:28ID:???
>>849-850を見ただけで教える気が失せた
perlの前に常識学んで来い
0858nobodyさん2006/04/26(水) 08:51:26ID:???
>>849
>丸投げってなんですか?
>「Perlをわかる気すら」って当然ですよ。
>覚えたいわけじゃ無いんです。
>ただ、そこだけが知りたいんです。

それを丸投げという。
さらに、ここはPerlを覚えたい人達が質問するスレです。
よってスレ違いです。
お帰り下さい。
0859nobodyさん2006/04/26(水) 09:06:17ID:???
>HTMLでサイト作るくらいは出来る僕からしたら
思いっきりHTMLの範疇なんだけど・・・
0860nobodyさん2006/04/26(水) 09:17:20ID:???
言っちゃった
0861nobodyさん2006/04/26(水) 09:20:49ID:???
>>849
perlの知識は要らないから、もう一度見直すこと。

それと、ここを利用する前に
初心者の質問に行って、スレッドフロート型掲示板について
勉強してきた方がいい。

> たらい回しって言うんですよね、それ。

これは、かなり恥ずかしい発言だよ。
0862nobodyさん2006/04/26(水) 09:24:19ID:hyGH423P
>>857
ほんと困ってるんです。
お願いします。

>>859
>HTMLの範疇
そんな??
なんかおかしいんですよ。
上下を取り替える事は出来るんです、
俺でも。
でも、私書箱が機能しなくなるんですよ。。。
その原因がどこにあるのかがわからないんです。

0863nobodyさん2006/04/26(水) 09:25:37ID:hyGH423P
>>861
わかるなら、教えてください。
ほんと困ってるんです。
0864nobodyさん2006/04/26(水) 09:36:20ID:???
Perl関係ねーじゃねーかよ
0865nobodyさん2006/04/26(水) 09:38:55ID:???
>>862
だから丸投げスレに行けっつってんだろ!
0866nobodyさん2006/04/26(水) 09:46:44ID:???
>>850
お前みたいなのを相手してるときりがないから、ここ以外のどっか行け。
0867nobodyさん2006/04/26(水) 10:20:13ID:hyGH423P
すみません、
http://hp.bird.to/さんの所の「私書箱SP(CGI)」
を使用させて頂こうと思っているのですが
ひとつだけ中をいじりたい事があるんです。
(ちなみに、作者様はいじる事を許可されています。)

で、HTMLでサイトを作るくらいは自分も出来るんですが
Perlの知識はまったく無いので自分なりにやっても
失敗してしまいます。
どうか、知識のある方叶えて頂けないでしょうか?

えっと、長くなるので、何度かレスさせて下さい。
0868nobodyさん2006/04/26(水) 10:22:56ID:hyGH423P
sub looking_list{
($cookie_name,$cookie_pass,$cookie_number) = get_cookie();
($c_cook,$c_name)=split(/:/,$cookie_name);
($c_cook,$c_pass)=split(/:/,$cookie_pass);
($c_cook,$c_number)=split(/:/,$cookie_number);
print <<END_OF_TEXT;
 <p>
<font color="$titlecolor" size=6>$html_title</font><p>
$error_code<p>
<form method="POST" action="$script_url">
<input type="hidden" name='command' value='access'>
<table border=1>
<TR><TH colspan=2>自分の私書箱にアクセス!!</TH></TR>
<tr><td align=right>登録名</td><td><input type="text" size=20 name="name" value="$c_name"></td></tr>
<tr><td align=right>パスワード</td><td><input type="text" size=20 name="pass" value="$c_pass"></td></tr>
<tr><td align=right>私書箱番号</td><td><input type="text" size=20 name="number" value="$c_number"></td></tr>
<TR><TD align=center colspan=2><input type="submit" value="送信"></TD></TR>
</table>
</form><P>
0869nobodyさん2006/04/26(水) 10:23:41ID:hyGH423P
<form method="POST" action="$script_url">
<table border=1>
<tr><th>ご用件をどうぞ!!</th></tr>
<tr><td>
<input type="radio" checked name='command' value='write'>私書箱に書き込む</td></tr>
<tr><td>
<input type="radio" name='command' value='mypost_regist'>私書箱の新規登録</td></tr>
<tr><td>
<input type="radio" name='command' value='mypost_delete'>私書箱の登録削除
</td></tr>
<tr><td align=center>
<input type="submit" value="送信">
</td></tr>
</table>
</form>
<form method="POST" action="$script_url">
<table width=90%>
<tr><td nowrap>
<input type="text" size=8 name="secret_pass">
<input type="submit" value="管理人専用">
</td>
<td nowrap align=right>
<font size=2><A HREF="http://hp.bird.to/index.html" target="_top">私書箱SP Ver.1.45(C)HPサービス</A></font>
</td>
</tr></table>
</form>
END_OF_TEXT
}
0870nobodyさん2006/04/26(水) 10:24:30ID:hyGH423P
>>868>>869はそのまま続いてましてこれを読み込ませると
画面に
「自分の私書箱にアクセス」といったBOXと
その下に「ご用件をどうぞ」のBOXが表示されるんです。

で、僕はこれの上下を入れ替えたいんです。
ただそれだけなんです。

「ご用件をどうぞ」のBOXが上に来て
「自分の私書箱にアクセス」のが下に表示されているといった感じに
したいんです。

でも、単純にプログラム文を上下入れ替えただけでは
駄目みたいで、、、 表示自体は上下変わってくれたんですが
送信押してもうんともすんとも動かず
機能しなくなっているのです。

どういった入れ替え方をすれば
上下変わってくれるんでしょうか?
すみません、ほんと。

0871nobodyさん2006/04/26(水) 10:28:09ID:???
NG推奨ID:「hyGH423P」
NG推奨ワード:「私書箱」
0872nobodyさんNGNG
暇だからコピペ荒らし扱いで規制議論に通報してくるかぁ
0873nobodyさん2006/04/26(水) 10:43:33ID:hyGH423P
>>872
教えてくれたら、
僕は消えるのに
そっちのが面倒じゃないの?

ってか、僕は間違っていない。
今までのみんながいじわるしてるだけじゃないか。
間違って無い。

0874nobodyさん2006/04/26(水) 10:49:41ID:???
コミュニケーション障害スレに行ったほうがいい。
0875nobodyさんNGNG
だってそもそも、自分で少しでも試して分からないのなら

★三 【 スクリプト改造工房 PART 9 】 ★三
http://pc8.2ch.net/test/read.cgi/php/1143834740/

このスレに行くべきだし。
君はスレ違いなんだよ。正しくなんかない。間違ってる。
後こっちも

最高にド低脳な発言してください in ム板(XU)
http://pc8.2ch.net/test/read.cgi/tech/1141400056/
0876nobodyさん2006/04/26(水) 11:12:01ID:???
>>873
もう1つのスレの方で書いておいた。
見て来いハゲ
0877nobodyさん2006/04/26(水) 11:23:49ID:???
すみません、ちょっと疑問に思ったのですが、
アップローダー作ってまして、cgi-lib.plで送信されたデータを
&ReadParse;する時に、データを全て受信するんですか?
それともperlスクリプトにformデータをsubmitされた時点で
全てのデータを送信し、その後受信し終わってからperlが走るんでしょうか?
初歩的な質問で申し訳ないですが教えてください。
0878nobodyさん2006/04/26(水) 11:25:01ID:???
ID:hyGH423P はただの荒らしですので、皆さん構わないよう注意して下さい

複数スレマルチポスト・コピペ報告スレ35@全板共通
http://qb5.2ch.net/test/read.cgi/sec2chd/1143873802/478-481
0879nobodyさん2006/04/26(水) 12:32:46ID:hyGH423P
>>876
書いてねーじゃねーか!!!!!!!!!!!!
この嘘つきが!!!!!!!!!!!!!!
0880nobodyさん2006/04/26(水) 12:35:22ID:hyGH423P
すみません、
http://hp.bird.to/さんの所の「私書箱SP(CGI)」
を使用させて頂こうと思っているのですが
ひとつだけ中をいじりたい事があるんです。
(ちなみに、作者様はいじる事を許可されています。)

で、HTMLでサイトを作るくらいは自分も出来るんですが
Perlの知識はまったく無いので自分なりにやっても
失敗してしまいます。
どうか、知識のある方叶えて頂けないでしょうか?

えっと、長くなるので、何度かレスさせて下さい。

0881nobodyさん2006/04/26(水) 12:35:53ID:hyGH423P
sub looking_list{
($cookie_name,$cookie_pass,$cookie_number) = get_cookie();
($c_cook,$c_name)=split(/:/,$cookie_name);
($c_cook,$c_pass)=split(/:/,$cookie_pass);
($c_cook,$c_number)=split(/:/,$cookie_number);
print <<END_OF_TEXT;
 <p>
<font color="$titlecolor" size=6>$html_title</font><p>
$error_code<p>
<form method="POST" action="$script_url">
<input type="hidden" name='command' value='access'>
<table border=1>
<TR><TH colspan=2>自分の私書箱にアクセス!!</TH></TR>
<tr><td align=right>登録名</td><td><input type="text" size=20 name="name" value="$c_name"></td></tr>
<tr><td align=right>パスワード</td><td><input type="text" size=20 name="pass" value="$c_pass"></td></tr>
<tr><td align=right>私書箱番号</td><td><input type="text" size=20 name="number" value="$c_number"></td></tr>
<TR><TD align=center colspan=2><input type="submit" value="送信"></TD></TR>
</table>
</form><P>

0882nobodyさん2006/04/26(水) 12:37:00ID:hyGH423P
<form method="POST" action="$script_url">
<table border=1>
<tr><th>ご用件をどうぞ!!</th></tr>
<tr><td>
<input type="radio" checked name='command' value='write'>私書箱に書き込む</td></tr>
<tr><td>
<input type="radio" name='command' value='mypost_regist'>私書箱の新規登録</td></tr>
<tr><td>
<input type="radio" name='command' value='mypost_delete'>私書箱の登録削除
</td></tr>
<tr><td align=center>
<input type="submit" value="送信">
</td></tr>
</table>
</form>
<form method="POST" action="$script_url">
<table width=90%>
<tr><td nowrap>
<input type="text" size=8 name="secret_pass">
<input type="submit" value="管理人専用">
</td>
<td nowrap align=right>
<font size=2><A HREF="http://hp.bird.to/index.html" target="_top">私書箱SP Ver.1.45(C)HPサービス</A></font>
</td>
</tr></table>
</form>
END_OF_TEXT
}

0883nobodyさん2006/04/26(水) 12:37:41ID:hyGH423P
で、これを読み込ませると
画面に
「自分の私書箱にアクセス」といったBOXと
その下に「ご用件をどうぞ」のBOXが表示されるんです。

で、僕はこれの上下を入れ替えたいんです。
ただそれだけなんです。

「ご用件をどうぞ」のBOXが上に来て
「自分の私書箱にアクセス」のが下に表示されているといった感じに
したいんです。

でも、単純にプログラム文を上下入れ替えただけでは
駄目みたいで、、、 表示自体は上下変わってくれたんですが
送信押してもうんともすんとも動かず
機能しなくなっているのです。

どういった入れ替え方をすれば
上下変わってくれるんでしょうか?
すみません、ほんと。

0884nobodyさん2006/04/26(水) 12:40:13ID:???
しねばいいとおもうよ^^
0885nobodyさんNGNG
ヒント:完全無視
0886nobodyさん2006/04/26(水) 12:43:58ID:???
頭終わってる
0887nobodyさん2006/04/26(水) 12:44:02ID:hyGH423P
>>885
聞き続けますからいいですよ、別に。
優しい人が教えてくれると思うんで。
0888超初心者2006/04/26(水) 12:44:53ID:???

CGIで書くと ↓これって絶対に必要なんでしょうか?
print "Content-type: text/html\n";

全部のページのソース見たら最初に改行入ってるのって
これのせいですよね?

みなさんはどうしてますでしょうか?
0889nobodyさん2006/04/26(水) 12:47:03ID:???
>>888
まぁ、大抵の場合は必要だろうね
0890nobodyさん2006/04/26(水) 12:47:55ID:hyGH423P
すみません、
http://hp.bird.to/さんの所の「私書箱SP(CGI)」
を使用させて頂こうと思っているのですが
ひとつだけ中をいじりたい事があるんです。
(ちなみに、作者様はいじる事を許可されています。)

で、HTMLでサイトを作るくらいは自分も出来るんですが
Perlの知識はまったく無いので自分なりにやっても
失敗してしまいます。
どうか、知識のある方叶えて頂けないでしょうか?

えっと、長くなるので、何度かレスさせて下さい。


0891nobodyさん2006/04/26(水) 12:47:57ID:???
http://qb5.2ch.net/test/read.cgi/sec2chd/1143873802/

483 :名無しの報告 :2006/04/26(水) 12:34:47 ID:xtIDN3z70
質問者を装ってねーーーーーーーよ!!!!!!!!!!!!!!!!
アホが!!!!!!!!!!!!
ほんとに質問してるのにお前らが答えてくれないんだろーが!!!!!!!

486 名前:名無しの報告[] 投稿日:2006/04/26(水) 12:47:03 ID:xtIDN3z70
>>規制人さんへ
ID:7I8tmvWQ0がスレで
初心者の質問してる僕を
煽ってるんでそこんとこ宜しくです。
0892nobodyさん2006/04/26(水) 12:49:20ID:hyGH423P
すみません、
http://hp.bird.to/さんの所の「私書箱SP(CGI)」
を使用させて頂こうと思っているのですが
ひとつだけ中をいじりたい事があるんです。
(ちなみに、作者様はいじる事を許可されています。)

で、HTMLでサイトを作るくらいは自分も出来るんですが
Perlの知識はまったく無いので自分なりにやっても
失敗してしまいます。
どうか、知識のある方叶えて頂けないでしょうか?

えっと、長くなるので、何度かレスさせて下さい。


0893nobodyさん2006/04/26(水) 12:50:19ID:hyGH423P
sub looking_list{
($cookie_name,$cookie_pass,$cookie_number) = get_cookie();
($c_cook,$c_name)=split(/:/,$cookie_name);
($c_cook,$c_pass)=split(/:/,$cookie_pass);
($c_cook,$c_number)=split(/:/,$cookie_number);
print <<END_OF_TEXT;
 <p>
<font color="$titlecolor" size=6>$html_title</font><p>
$error_code<p>
<form method="POST" action="$script_url">
<input type="hidden" name='command' value='access'>
<table border=1>
<TR><TH colspan=2>自分の私書箱にアクセス!!</TH></TR>
<tr><td align=right>登録名</td><td><input type="text" size=20 name="name" value="$c_name"></td></tr>
<tr><td align=right>パスワード</td><td><input type="text" size=20 name="pass" value="$c_pass"></td></tr>
<tr><td align=right>私書箱番号</td><td><input type="text" size=20 name="number" value="$c_number"></td></tr>
<TR><TD align=center colspan=2><input type="submit" value="送信"></TD></TR>
</table>
</form><P>



0894nobodyさん2006/04/26(水) 12:51:01ID:hyGH423P
<form method="POST" action="$script_url">
<table border=1>
<tr><th>ご用件をどうぞ!!</th></tr>
<tr><td>
<input type="radio" checked name='command' value='write'>私書箱に書き込む</td></tr>
<tr><td>
<input type="radio" name='command' value='mypost_regist'>私書箱の新規登録</td></tr>
<tr><td>
<input type="radio" name='command' value='mypost_delete'>私書箱の登録削除
</td></tr>
<tr><td align=center>
<input type="submit" value="送信">
</td></tr>
</table>
</form>
<form method="POST" action="$script_url">
<table width=90%>
<tr><td nowrap>
<input type="text" size=8 name="secret_pass">
<input type="submit" value="管理人専用">
</td>
<td nowrap align=right>
<font size=2><A HREF="http://hp.bird.to/index.html" target="_top">私書箱SP Ver.1.45(C)HPサービス</A></font>
</td>
</tr></table>
</form>
END_OF_TEXT
}


0895nobodyさん2006/04/26(水) 12:51:13ID:???
http://pc8.2ch.net/test/read.cgi/tech/1141742901/976-981
0896nobodyさん2006/04/26(水) 12:51:48ID:hyGH423P
で、これを読み込ませると
画面に
「自分の私書箱にアクセス」といったBOXと
その下に「ご用件をどうぞ」のBOXが表示されるんです。

で、僕はこれの上下を入れ替えたいんです。
ただそれだけなんです。

「ご用件をどうぞ」のBOXが上に来て
「自分の私書箱にアクセス」のが下に表示されているといった感じに
したいんです。

でも、単純にプログラム文を上下入れ替えただけでは
駄目みたいで、、、 表示自体は上下変わってくれたんですが
送信押してもうんともすんとも動かず
機能しなくなっているのです。

どういった入れ替え方をすれば
上下変わってくれるんでしょうか?
すみません、ほんと。




0897nobodyさん2006/04/26(水) 12:52:42ID:???
>889
そうですかぁ

print "Content-type: text/html\n";
↑の\n取るとCGIエラー出るのは
何故なんでしょう?
バカな質問ですみません。
0898nobodyさん2006/04/26(水) 12:54:19ID:???
>>897
print "Content-type: text/html\n\n";
じゃないの? \n が一個少なくない?
エラーになる理由は
ttp://www.studyinghttp.net/
ここら辺見れば分かるよ
0899nobodyさん2006/04/26(水) 13:00:40ID:???
※ ID:hyGH423P は初心者を装った悪質な荒らしです
※ 完全無視を決め込みましょう
※ 構うと相手を喜ばせるだけです

複数スレマルチポスト・コピペ報告スレ35@全板共通
http://qb5.2ch.net/test/read.cgi/sec2chd/1143873802/478-481,484,485,487
0900nobodyさん2006/04/26(水) 13:05:07ID:???
>>888
> 全部のページのソース見たら最初に改行入ってるのって
> これのせいですよね?
違う。その二つの改行はHTTPヘッダとその終わりを示すもの。
本来、本文のほうには出てこないよ。もう一個別のところで改行してたりしない?
0901nobodyさん2006/04/26(水) 13:08:40ID:hyGH423P
解決しました。
あちらで回答してくださった方(>>876さん含め)
ありがとうございました。














>>899 ID:7I8tmvWQ0

死ね
0902nobodyさん2006/04/26(水) 13:09:32ID:???
>>901
君が死になよw
小学生は2ch来ない方がいいよw
0903nobodyさん2006/04/26(水) 13:10:28ID:hyGH423P
>>902
あれ?
ムカついてる?ww
0904nobodyさん2006/04/26(水) 13:10:52ID:???
>>903
全然w
早く消えてよw
0905nobodyさん2006/04/26(水) 13:12:05ID:???
>>903
君さ、このスレに居ると邪魔だから。
早く消えて欲しいんだよね、ほんと
0906nobodyさん2006/04/26(水) 13:12:33ID:hyGH423P
>>904
自分で言ってながら
スルー出来て無いしw

おもったより
頭弱いんだね、あんたw
0907nobodyさん2006/04/26(水) 13:13:10ID:???
>>906
何を言ったのか分からないよw
日本語ちゃんと書いてねw

>頭弱いんだね
君には負けるよwww
0908nobodyさん2006/04/26(水) 13:13:59ID:???
>>903
解決したんだろ?wwwさっさと死ねよw
0909nobodyさん2006/04/26(水) 13:14:40ID:hyGH423P
>>907
じゃあな、
根暗の暇人オヤジw

あ〜、
問題が解決して
こっちはスッキリだわ
0910nobodyさん2006/04/26(水) 13:14:57ID:???
ID:hyGH423P

こいつ本気で可哀想になってきた
どんな教育受けたらこんな非常識になれるんだろう
まさに親の顔が見て見たいな
0911nobodyさん2006/04/26(水) 13:15:20ID:hyGH423P
なんども自演してまで
書込むなよw

そんな腹立ったんだ?
ごめんごめんww
0912nobodyさん2006/04/26(水) 13:15:30ID:???
>>909
勝手にオヤジ決めつけですかw
とことん馬鹿ですね君はw
痛いですよ、あなた
0913nobodyさん2006/04/26(水) 13:16:00ID:???
>>911
自演としか思えないんだ(笑)
都合の悪い事は全部自演扱いなのかな?(苦笑)
0914nobodyさん2006/04/26(水) 13:16:12ID:hyGH423P
>>910
お前の親は不細工だよねー
不細工ふたりが
お前みたいな不細工産んだw
笑えるw
0915nobodyさん2006/04/26(水) 13:16:49ID:???
顔も見てないのに不細工決め付けw
どこまで幼稚なんだこいつはw
0916nobodyさん2006/04/26(水) 13:16:54ID:hyGH423P
今どきこんな→(苦笑)
使わないってw

オヤジじゃんww
0917nobodyさん2006/04/26(水) 13:17:19ID:???
また決め付けw
そろそろ釣り宣言ですか?w
0918nobodyさん2006/04/26(水) 13:17:32ID:hyGH423P
>>915
絶対お前不細工だろ
命賭けれるね、俺w
0919nobodyさん2006/04/26(水) 13:18:08ID:???
また決め付けてるよw
学習能力無いな〜wこいつw
0920nobodyさん2006/04/26(水) 13:18:08ID:???
>898
どうもです。
よく読んでみます。
\nはいままでずっと一個で書いてました。


#!/usr/bin/perl

require 'XXXX.cgi';
print "Content-type: text/html\n";

>900
やっぱり出てこないんですね!?
間違えてたのかなー。
0921nobodyさん2006/04/26(水) 13:18:33ID:hyGH423P
>>917
お前の両親の存在が釣りだわw
いつまでも不細工夫婦に迷惑かけんなよ?
早く死ねよ、ひきこもりw
0922nobodyさん2006/04/26(水) 13:19:15ID:???
次は引きこもり扱いですか
やっぱこういう奴って親の劣等遺伝子しっかり受け継いでるんだろうなぁ〜
勉強になりました
0923nobodyさん2006/04/26(水) 13:19:28ID:???
お前ら落ち着け。
ただの罵し合いなら他でやってくれ。
0924nobodyさん2006/04/26(水) 13:19:48ID:hyGH423P
>>919
オツム弱いね、君w
0925nobodyさん2006/04/26(水) 13:19:56ID:???
だって馬鹿相手にレスするの楽しいんだもんw
0926nobodyさん2006/04/26(水) 13:20:35ID:hyGH423P
>>922
母のまんこでも舐めてろ
ひきこもりがw
0927nobodyさん2006/04/26(水) 13:21:13ID:???
使う言葉までレベル低いというか下劣ですね
かわいそう
0928nobodyさん2006/04/26(水) 13:21:37ID:hyGH423P
怒られてやんのww
http://qb5.2ch.net/test/read.cgi/sec2chd/1143873802/489n-
0929nobodyさん2006/04/26(水) 13:21:50ID:???
馬鹿ってちょっと煽ってやるとすぐファビョるから面白いよねw
0930nobodyさん2006/04/26(水) 13:23:01ID:hyGH423P
>>929
煽られたのお前じゃんw
俺最初からこのノリ。

お前、人格変わってるww
顔真っ赤にして反応すんなやw
0931nobodyさん2006/04/26(水) 13:23:53ID:hyGH423P
しかもスルー出来ない性格w
これ、ミイラ取りがミイラなってない?w

幼稚な奴w
0932nobodyさん2006/04/26(水) 13:23:57ID:???
やっぱり馬鹿だから、これで勝ったとか思ってるんだろうなぁ
どこまで哀れなんだ君は
0933nobodyさん2006/04/26(水) 13:24:38ID:hyGH423P
>>932
やっぱり馬鹿だから、これで勝ったとか思ってるんだろうなぁ
どこまで哀れなんだ君は
0934nobodyさん2006/04/26(水) 13:25:14ID:hyGH423P
492 :名無しの報告 :2006/04/26(水) 13:24:34 ID:7I8tmvWQ0
>>489
ごめんごめん。
ID:xtIDN3z70 見てたら可哀想になってきちゃって。



謝ってるwwっwwっw(ゲラゲラ
0935nobodyさん2006/04/26(水) 13:25:16ID:???
ついにコピペしか出来ない脳になってしまいましたよw
君を煽ってるのは一人だけじゃないよw
そんな事も分からないなんてw
0936nobodyさん2006/04/26(水) 13:26:00ID:???
>wwっwwっw(ゲラゲラ

VIPでやれ
0937nobodyさん2006/04/26(水) 13:26:17ID:hyGH423P
>>935
ぎゃはははははははw
0938nobodyさん2006/04/26(水) 13:26:32ID:???
やばい
こっちが何か書く度に反応してくれる
マジ面白い
0939nobodyさん2006/04/26(水) 13:27:40ID:hyGH423P
489 :名無しの報告 :2006/04/26(水) 13:16:17 ID:tiKIzFym0
>>478-481,484,485,487
報告してくれるのはありがたいんだが、報告先のスレのテンプレを読めよ…

492 :名無しの報告 :2006/04/26(水) 13:24:34 ID:7I8tmvWQ0
>>489
ごめんごめん。

493 :名無しの報告 :2006/04/26(水) 13:25:47 ID:xtIDN3z70
ID:7I8tmvWQ0
意味無く謝ってるwwww
アホ過ぎるwwww
0940nobodyさん2006/04/26(水) 13:27:48ID:???
こいつ面白いなw
最初規制議論に書かれた時すんげーびびって
486みたいな事書いてるのに
何この態度の変わりようはw
0941nobodyさん2006/04/26(水) 13:28:36ID:???
ただのビビリじゃんこいつwww
0942nobodyさん2006/04/26(水) 13:28:56ID:???
>>939
なんだそれw
0943nobodyさん2006/04/26(水) 13:29:26ID:???
>>924
オムツが濡れてるからって荒らすなよ
ママに交換してもらいな
0944nobodyさん2006/04/26(水) 13:29:30ID:???
>>940
お前もウザイ
0945nobodyさん2006/04/26(水) 13:30:16ID:???
こいつ"意味無く"の意味分かってるのかなw
0946nobodyさん2006/04/26(水) 13:31:01ID:???
ごめん。
もうこんな奴に相手するのやめるよ。
スレ汚してスマソ
0947nobodyさん2006/04/26(水) 13:31:05ID:hyGH423P
494 :名無しの報告 :2006/04/26(水) 13:29:26 ID:7I8tmvWQ0
これ以上は自分まで荒らしになるので書き込むのやめます
ID:xtIDN3z70 さんももう少し頭を働かせた方が良いですよ



ぎゃっはっはっはっはっっはっはっはw
0948nobodyさん2006/04/26(水) 13:32:13ID:???
俺もこんな馬鹿相手にするのやめるわw
時間の無駄w
ここまでアホだとは思わんかったw
0949nobodyさん2006/04/26(水) 13:32:55ID:hyGH423P
>>946
許してやるよ。

さっさと消えとけ
この能無しw
0950nobodyさん2006/04/26(水) 13:33:16ID:???
次の質問どうぞ〜
0951nobodyさん2006/04/26(水) 13:33:52ID:???
アホふたり
0952nobodyさん2006/04/26(水) 13:36:10ID:???
今北
何この伸びようは、って思ったら変な奴が一匹暴れてただけか…
0953nobodyさん2006/04/26(水) 13:38:08ID:???
専門板でやったからこれぐらいで済んだけど
ニュー速とかでやったら物凄く晒し上げられてるだろうな
0954nobodyさん2006/04/26(水) 13:39:19ID:???
んなこた無い
0955nobodyさん2006/04/26(水) 13:42:16ID:???
ID:hyGH423P
0956nobodyさん2006/04/26(水) 13:47:24ID:???
冷静に考えるとこの一連の流れは全て自演じゃなかったのだろうか
0957nobodyさん2006/04/26(水) 13:50:49ID:???
変な奴が2匹だよ
0958nobodyさん2006/04/26(水) 13:52:09ID:???
このスレを嫌う何者かの陰謀...
0959nobodyさん2006/04/26(水) 13:55:23ID:???
勝った(@w荒
圧倒的に勝った(@w荒
0960nobodyさん2006/04/26(水) 14:02:20ID:???
伸びてると思ったらなにこの久々の展開
0961nobodyさん2006/04/26(水) 14:02:50ID:???
>>959
(;^ω^)うわ、コイツつまんね
0962nobodyさん2006/04/26(水) 14:03:05ID:???
隔離スレドゾー
http://pc8.2ch.net/test/read.cgi/php/1146027632/
0963nobodyさん2006/04/26(水) 14:16:22ID:???
ちょっと見ただけで頭のおかしいやつだって分かるのに
誰だよ、どっかのスレで答えちゃったやつw
一生ずっと放置しておけばおもしろかったのに
0964nobodyさん2006/04/26(水) 14:51:05ID:???
同じ穴だな
0965nobodyさん2006/04/26(水) 15:25:17ID:???
>>963
答えた奴もバカだが、
ガチで遣り合って無駄スレ消費させた大バカもいたぞw
0966nobodyさん2006/04/26(水) 15:28:36ID:???
ヒント:自演
0967nobodyさん2006/04/26(水) 16:29:37ID:xxhiuPmH
965=大バカ
0968nobodyさん2006/04/26(水) 16:43:54ID:???
無駄スレ←プッw
0969nobodyさん2006/04/26(水) 17:01:09ID:???
つーか、次スレ誰か立てて
俺は立てれなかった
0970nobodyさん2006/04/26(水) 18:00:06ID:???
んじゃ、トライしてくる。
0971nobodyさん2006/04/26(水) 18:10:42ID:???
Perlコーディング初心者質問スレ Part 48
http://pc8.2ch.net/test/read.cgi/php/1146042050/

# 8連投で規制かかるのに、テンプレ9レス必要なのはつらすぎ。
0972nobodyさんNGNG
0973nobodyさん2006/04/26(水) 19:14:48ID:???
何この残尿感
0974nobodyさん2006/04/26(水) 20:02:34ID:???
在チョンが降臨してたのか
09759202006/04/26(水) 21:08:33ID:???
解決しました。
どうもサーバーの自動改行らしく
.htaccessいじったら改行消えました。


で、また質問なのですが
IEなんかで他所のホームページ覗くと
半角カナとかソースがばけてるやつありますよね
あれはどうしてあのように見えるのでしょうか?
文字コードとかの関係なのでしょうか?
0976nobodyさん2006/04/26(水) 21:18:13ID:???
>>975
メモ帳で表示されるからだろ
おそらくcharsetがEUC-JPかUTF-8
Firefoxとか使えばちゃんと表示されるよ
0977 ◆TWARamEjuA NGNG
乗り遅れ(泪)
「パンチ2/3」と「本7」が来たのか?
0978nobodyさん2006/04/26(水) 22:02:33ID:???
5分の2じゃなかったっけ?
0979nobodyさん2006/04/26(水) 22:04:57ID:???
また懐かしい名前を・・・まだ生きてるのかな
0980nobodyさん2006/04/26(水) 22:44:15ID:???
>976
ありがとうございます なるほど
対応したアプリだと見れるんですね
なにか特殊な処理してるのかなかなぁと勘違いしてました。


んでまた疑問なのですが
requireで呼び出すサブルーチンの最後に 1:と書いてるのを
よく見るのですが これは必ず 1:じゃないといけない決まりなんでしょうか?
試したら 2: とか $適当な変数;とかでもいけたのですが・・・
バカな質問ですみません。
0981 ◆TWARamEjuA NGNG
>>980
perl付属のドキュメントに書いてあったような。。。
最後に「真」を返さなきゃなのですです♪
0982nobodyさん2006/04/26(水) 23:58:01ID:???
>>981
レスどうもです
さっそく見てみます!

今日は勉強になりましたノシ
0983nobodyさん2006/04/27(木) 00:11:25ID:???
「真」を返さなきゃいけないというと、-1とか0以外ならなんでもOKなんですか?
0984nobodyさん2006/04/27(木) 00:20:35ID:???
>983
-1 は「真」です
0985nobodyさん2006/04/27(木) 00:21:00ID:???
ぼくのちんちんも評価してください。
0986nobodyさん2006/04/27(木) 00:31:02ID:???
C で if (! (fd = open(...))) error(); とかやって小一時間潰したのを思い出した。
0987nobodyさん2006/04/27(木) 00:46:00ID:???
掲示板の製作で躓いてる部分があるので質問させていただきますm(_ _)m
if (!$res_flag) {
print "<TABLE width=\"500\" border=\"1\" bordercolor=\"#A9A9A9\" bgcolor=\"#FFFFFF\" cellpadding=\"0\" cellspacing=\"0\"><TR><TD>\n";
print "<dl><dt><b>■$kizi_title  (No.$no)</b><BR>";
print "<dt>日時:$date<BR>";
print "<dt>名前:$name<BR>";
print "<BR><dd>$message\n";
print "<div align=\"right\">";
print "<form action=\"$script\" method=\"POST\">";
print "<INPUT TYPE=\"hidden\" NAME=\"mode\" value=\"res\">";
print "<input name=\" 返信 \" type=\"submit\" value=\" 返信 \">";
print "</form></div>\n";
}
if ($res_flag) {
print "<hr>\n";
print "<dl><dt><b>■$k_title  (No.$no)</b><BR>";
print "<dt>日時:$date<BR>";
print "<dt>名前:$name<BR>";
print "<BR><dd>$message\n";
}
print "</TD></TR></TABLE>\n";
スレッドとレスの区別をつけるのに苦戦しています…
スレッドを立てるときにhiddenでres_flagの値を送信しています(スレッドの時は0、レスは1)

これで実際にやってみるとなぜかレスが上に行ってしまいます
つまり(□=レス ■=スレッド


みたいになってほしいのですが、実際


こうなってしまいます
0988nobodyさん2006/04/27(木) 00:47:18ID:obiLVGb1
しかも二度目レスするとそのレスが上に行きます
どうしたら正しくできるでしょう?…

レスとスレッドの区別方法が悪いのかな…
0989nobodyさん2006/04/27(木) 00:53:40ID:???
さっぱり何をおっしゃりたいのか意味がわかりません。
0990nobodyさん2006/04/27(木) 01:17:14ID:???
テンプレート作れなくてもヒアドキュメントぐらいは使って欲しい。
0991nobodyさん2006/04/27(木) 01:31:41ID:???
ふつー TT だろ?
0992nobodyさん2006/04/27(木) 01:47:32ID:???
HTMLの要素と属性で大文字小文字をごっちゃにしてるやつは嫌いだ
0993nobodyさん2006/04/27(木) 02:24:20ID:???
ヒアドキュメントを使うとソースが汚くなるのはどうにかならんもんか・・・
その逆でPHPとかASPは見栄えはいい
そんな俺はperl一筋
0994nobodyさん2006/04/27(木) 03:48:30ID:???
ヒアドキュメントなんて使ってないで、MVC を徹底汁。
0995nobodyさん2006/04/27(木) 08:22:39ID:???
MVCで作ることと、Viewに何を使うかは関係無いと思う。
0996nobodyさん2006/04/27(木) 09:57:02ID:???
また昨日のが沸いたのかと思った。
初心者スレなんだからprintでいいだろ
普通に考えればどこかの順番が間違ってるに違いない
0997nobodyさん2006/04/27(木) 10:08:50ID:???
全体をどっかにうpした方が話が早い気がした。
0998nobodyさん2006/04/27(木) 10:29:54ID:???
>>987
パッと見で気付くのは、
<TABLE> は if 節に入ってるのに </TABLE> は if 節の外にあるから、
!$res_flag なときは <TABLE> タグが表示されないよね。
0999nobodyさん2006/04/27(木) 10:51:00ID:???
TABLEで順番がおかしいってのはだいたいhtmlでおかしい時が多いよな

次スレ http://pc8.2ch.net/test/read.cgi/php/1146042050/
1000nobodyさん2006/04/27(木) 11:17:38ID:???
1000
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。