5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

Perl コーディング初心者質問コーナー Part27

1 :nobodyさん:03/08/14 06:06 ID:xOc/6R60
いらっしゃーい、Perlのコーディングで困ってる人のスレです。

【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。

1: 自分はこう言う事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。

最低でも1と3が無いと誰も答えられないよ。
ソース貼る時は、全角スペースでインデント忘れずに。
良い回答は良い質問から。一緒に勉強しましょう。

関連スレ
【Perl上級者コーナーPart01】
http://pc2.2ch.net/test/read.cgi/php/1024741312/
CGI: Common Gateway Interface part 11
http://pc2.2ch.net/test/read.cgi/php/1055597189/
【Perl,CGI】参考書籍 第三版
http://pc2.2ch.net/test/read.cgi/php/1030209573/
【 スクリプト改造工房 PART 6 】
http://pc2.2ch.net/test/read.cgi/php/1047806915/

過去ログやお勧めサイトは >>2-10

2 :nobodyさん:03/08/14 06:07 ID:???
[過去ログ] 1 of 2

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.datOpen
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
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

3 :nobodyさん:03/08/14 06:07 ID:???
[過去ログ] 2 of 2

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と誤記)
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/test/read.cgi/php/1053051519/
part24 http://pc2.2ch.net/test/read.cgi/php/1054992610/
part25 http://pc2.2ch.net/test/read.cgi/php/1056730690/

[ひまぢん氏のミラー]
Part1 http://www.angelfire.com/ak5/2ch-web-program/kako/957208980.html
Part2 http://www.angelfire.com/ak5/2ch-web-program/kako/971817087.html
Part3 http://www.angelfire.com/ak5/2ch-web-program/kako/979894521.html
Part4 http://www.angelfire.com/ak5/2ch-web-program/kako/984430156.html
Part5 http://www.angelfire.com/ak5/2ch-web-program/kako/988728069.html

4 :nobodyさん:03/08/14 06:08 ID:???
[総合]
 ・Perl Com: http://www.perl.com/pub/Open
 ・CPAN.com: http://search.cpan.org/Open
 ・ActivePerl: http://www.activestate.com/Open
 ・CGI-ML:http://forest.ne.jp/cgi-ml/Open

[お薦め]
 ・Perlメモ: http://www.din.or.jp/~ohzaki/perl.htmOpen ★読んどけ
 ・Perl Recipes: http://www.effectiveperl.com/recipes/Open
 ・Randal's WebTechniques columns: http://www.stonehenge.com/merlyn/WebTechniques/Open
 ・Perlの部屋: http://www.cc.rim.or.jp/~midorin/mad-p/perl/index.htmlOpen
 ・Perl初心者の部屋:http://www.harukaze.net/~mishima/perl/Open
 ・Perlリファレンス:http://www.big.or.jp/~mio/ga/pl/plref/pl_ref.htmOpen
 ・Perlのページ:http://homepage1.nifty.com/nomenclator/perl/

5 :nobodyさん:03/08/14 06:08 ID:???
[Document&Tutorial]
 ・Home - Japanized Perl Resources Project: http://perldocjp.sourceforge.jp/
 ・Perl News: http://www.news.perl.org/Open
 ・Perl Monks: http://www.perlmonks.org/
 ・use Perl; : http://use.perl.org/
 ・Learn Perl - Perl Education: http://www.devdaily.com/perl/edu/index.shtml
 ・Perldoc.com: http://www.perldoc.com/
 ・Using Perl5 in Web: http://docs.rinet.ru/Using_Perl5_in_Web/
 ・Rex Swain's Home Page: http://www.rexswain.com/
 ・Robert's Perl Tutorial: http://www.netcat.co.uk/rob/perl/win32perltut.html
 ・Perl Tuts: http://savage.net.au/Perl-tutorials.htmlOpen
 ・Beginning Perl Tutorials: http://www.pageresource.com/cgirec/index2.htm
 ・jcode.pl の私的な解説書: http://www.mikeneko.ne.jp/~lab/kcode/jcode.html
 ・Logical Choice Software, Home Page: http://www.logsoft.com/perltips/
 ・Perlfect Solutions: http://perlfect.com/Open
 ・The Perl Archive : http://www.perlarchive.com/Open
 ・Perl6 & Parrot VM についての情報: http://dev.perl.org/perl6/Open
 ・use Object; : http://perl.infoware.ne.jp/Open

6 :nobodyさん:03/08/14 06:08 ID:???
[Document&Tutorial]
 ・Home - Japanized Perl Resources Project: http://perldocjp.sourceforge.jp/
 ・Perl News: http://www.news.perl.org/Open
 ・Perl Monks: http://www.perlmonks.org/Open
 ・use Perl; : http://use.perl.org/
 ・Learn Perl - Perl Education: http://www.devdaily.com/perl/edu/index.shtml
 ・Perldoc.com: http://www.perldoc.com/
 ・Using Perl5 in Web: http://docs.rinet.ru/Using_Perl5_in_Web/Open
 ・Rex Swain's Home Page: http://www.rexswain.com/Open
 ・Robert's Perl Tutorial: http://www.netcat.co.uk/rob/perl/win32perltut.htmlOpen
 ・Perl Tuts: http://savage.net.au/Perl-tutorials.htmlOpen
 ・Beginning Perl Tutorials: http://www.pageresource.com/cgirec/index2.htmOpen
 ・jcode.pl の私的な解説書: http://www.mikeneko.ne.jp/~lab/kcode/jcode.htmlOpen
 ・Logical Choice Software, Home Page: http://www.logsoft.com/perltips/
 ・Perlfect Solutions: http://perlfect.com/Open
 ・The Perl Archive : http://www.perlarchive.com/Open
 ・Perl6 & Parrot VM についての情報: http://dev.perl.org/perl6/Open
 ・use Object; : http://perl.infoware.ne.jp/Open

7 :nobodyさん:03/08/14 06:09 ID:???
[Module]
 ・Perl Module Reference: http://www.bekknet.ad.jp/~bero/docj/module_/ (404)
 ・PPMPackages: http://www.activestate.com/PPMPackages/
 ・河馬屋二千年堂's Page: http://member.nifty.ne.jp/hippo2000/index.htm

[Security]
 ・安全なプログラミングのためのガイドライン:http://www.FreeBSD.org/ja/security/#spg
 ・Perl security:http://www.perldoc.com/perl5.6/pod/perlsec.htmlOpen
 ・Perl security和訳:http://www.kt.rim.or.jp/%7ekbk/perl5.005/perlsec.htmlOpen
 ・CGI and Security http://www.ansi.co.jp/tech/cgi/security/Open
 ・The Unofficial Web Hack FAQ:http://www.nmrc.org/faqs/www/
 ・How to Write Secure Code:http://www.shmoo.com/securecode/
 ・Safe CGI Programming :http://www.improving.org/paulp/cgi-security/safe-cgi.txtOpen

[OS]
 ・Linux日本語マニュアル:http://www.linux.or.jp/JM/Open
 ・FreeBSD日本語マニュアル:http://www.jp.freebsd.org/man-jp/Open

8 :nobodyさん :03/08/14 06:11 ID:???
前スレ

http://pc2.2ch.net/test/read.cgi/php/1059043704/l50

立てといたが、藻前ら、荒すんじゃねーぞ

9 :nobodyさん:03/08/14 08:23 ID:???
つーか、荒してるのひとりだけだし、こまめに削除依頼出せばいい

10 :あぼーん:あぼーん
あぼーん

11 :nobodyさん:03/08/14 10:47 ID:???
http://pc2.2ch.net/test/read.cgi/php/1012750353/243
>%aa=("hanako","12","tarou","20","ichirou","5");
>となっているとします。
>キーが名前で値が年齢なんですが、
>年齢でソートし表示させる場合、
>ichirou 5
>hanako 12
>tarou 20
>とするにはどうすればいいのですか?

http://www.kt.rim.or.jp/%7ekbk/perl5.005/perlfaq4.html#How_do_I_sort_a_hash_optionally
クックブックレシピ5.9

演算子を間違わないよう注意。

12 :nobodyさん:03/08/14 11:02 ID:???
あっと、演算子でしたか…。

演算子は数値なので、<=>を使用。

13 :nobodyさん:03/08/14 11:03 ID:???
PHPのrawurlencode関数(RFC1738に基づきURLエンコードを行う)
http://php.planetmirror.com/manual/ja/printwn/function.rawurlencode.php
と同じことを、perlでやりたいのですが、
どのようにくめばよいのでしょうか?

14 :nobodyさん:03/08/14 11:13 ID:???
s/([^0-9A-Za-z_ ])/'%'.unpack('H2',$1)/ge;
s/\s/+/g;

15 :nobodyさん:03/08/14 11:27 ID:???
s/\s/+/g
は、
s/ /+/gでは無いので注意しましょう。この場合は問題は起きないけど。

16 :nobodyさん:03/08/14 11:29 ID:H+TQovVp
今、深沢千尋氏の書いた『すぐ分かるPerl』を元に勉強しているのですが、
その中の、第五章『プログラムにデータを渡す 〜引数〜』という章で、

#! /usr/local/bin/perl

print "$ARGV[0]\n";
print "$ARGV[1]\n";
print "$ARGV[2]\n";
print "$ARGV[3]\n";
print "$ARGV[4]\n";

に"love"という引数を与えてみましょう。

と書いてあるのですが、どうやれば引数を与えられるのでしょうか。
OSはWindowsXP、エディタはTeraPadを使っています。
よろしくお願いします。<(_ _)>

17 :nobodyさん :03/08/14 12:05 ID:???
>>16
@ARGV は実行ファイルに対する引数。
ファイル名を aya.plとした場合、

aya.pl love

で動くでそ




18 :13:03/08/14 12:09 ID:???
>>14
ありがとうございます。
ところで、>>14 を見て逆に、
googleで「エンコード perl unpack」で検索していくつかのページを見たんですが、
s/ /+/g; とやってるところしか見あたりませんでした。

>>15の意図はどんなところにあるのでしょうか?

19 :nobodyさん:03/08/14 12:20 ID:???
[0-9A-Za-z_ ] 以外は変換済みなので\sに該当するものは
空白しかないけど、本来の目的ではTAB等も+に変えたかった
ってことじゃねーの?あまり深い意味は無い

20 :16:03/08/14 12:43 ID:H+TQovVp
>>17
レスありがとうございます。
早速ファイル名を aya.cgi love にしてFFFTPを使ってトクトクに送り、

あなたのアクセスしたファイルは、
アクセスする権限が与えられていないか、
もしくはindex.html 又は index.htmが存在しません。

と表示されました。
お手数ですが、他に方法は無いでしょうか。よろしくお願いします。

補足
*拡張子 .pl だとこのCGIのダウンロードが始まり、駄目っぽいので、元通り拡張子.cgiで試してみました。

*#! /usr/local/bin/perl と書きましたが、これは本の中にこう書いてあるだけで、実際には #!/usr/bin/perl
 であり、Tok2.comに送ってやっとります。 説明不足スイマセン。

21 :nobodyさん:03/08/14 12:45 ID:???
面倒くさいからこれでいいだろ
s/(\W)/'%' . unpack('H2', $1)/eg;

半角スペースは当然 %20 に変換される

22 :nobodyさん:03/08/14 12:59 ID:???
>>20
共有サーバでそんなテストなんかするな!
自分のPCにperlとhttpd入れてやれ

それにやってること丸っきり的外れ

23 :nobodyさん:03/08/14 13:11 ID:???
>>20
「すぐわかるPerl」なら
1.1Perlは入っているか?
をじっくり読んでみてください。

24 :nobodyさん:03/08/14 14:32 ID:???
>>19
URLエンコードは本来不可逆だってこと?

>>20
トクトクから損害賠償請求が来ますよ?


25 :nobodyさん:03/08/14 15:13 ID:???
>>20

つまり、おまえみたいな馬鹿は二度と来るなってこと。
すげー迷惑。人のことも考えろ、ハゲ!!

26 :nobodyさん:03/08/14 15:14 ID:???
#!/usr/bin/perl

# CGIヘッダの出力
print "Content-type: text/html\n\n";

while($HP1 > 0) and ($HP2 > 0){
srand1;
srand2;
}

# Player1
$HP1 = 400 - $kougeki1;
$KIK1 = 60;
$PAN1 = 20;
$DF1 = 10;

# Player2
$HP2 = 300 - $kougeki2;
$KIK2 = 100;
$PAN2 = 40;
$DF2 = 0;

# Player1
$kougeki1 = srand;

# Player2
$kougeki2 = srand2;

27 :nobodyさん:03/08/14 15:14 ID:???
srand;
if($mode == 1){
$offense = \%you;
$defense = \%my;
}elsif($mode == 2){
$offense = \%my;
$defense = \%you;
}
if( int(rand(2)) ){
#punch
$damage =
$offense->{'$PAN1'} - $defense->{'$DF2'};
if(!$rand = int(rand(5))){
#half
$damage = int($damage / 999);
}elsif($rand < 3){
#miss
$damage = "";
}
}else{
#kick
$damage =
$offense->{'$KIK1'} - $defense->{'$DF2'};
}


28 :nobodyさん:03/08/14 15:14 ID:???
srand2;
if($mode == 1){
$offense = \%you;
$defense = \%my;
}elsif($mode == 2){
$offense = \%my;
$defense = \%you;
}
if( int(rand(2)) ){
#punch
$damage =
$offense->{'$PAN2'} - $defense->{'$DF1'};
if(!$rand = int(rand(5))){
#half
$damage = int($damage / 999);
}elsif($rand < 3){
#miss
$damage = "";
}
}else{
#kick
$damage =
$offense->{'$KIK2'} - $defense->{'$DF1'};
}

($damage < 0) and ($damage = 0);
$defense->{'HP1'} -= $damage;

($damage < 0) and ($damage = 0);
$defense->{'HP2'} -= $damage;


29 :nobodyさん:03/08/14 15:15 ID:???
# HTMLの出力
print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\">\n";
print "<html>\n";
print "<head><title>対戦バトル</title></head>\n";
print "<body>
<p>Player1:体力は$HP1です</p>
<p>Player2:体力は$HP2です</p>
<p>Player1は<big>$kougeki1</big>のダメージを与えた。</p>
<p>Player1は<big>$kougeki1</big>のダメージを受けて混乱した。
<p>Player1は<big>$kougeki1</big>のダメージで友達のトイレではみ出したクソをし始めた。
<p>Player2は<big>>$kougeki2</big>のダメージを与えた。</p>
<p>Player2は<big>>$kougeki2</big>のダメージを受けて裸踊りを始めた。
<p>Player2は<big>>$kougeki2</big>のダメージで友達の女にレイプし始めた。</p></p></body>\n";
print "</html>";


30 :あぼーん:あぼーん
あぼーん

31 :あぼーん:あぼーん
あぼーん

32 :nobodyさん:03/08/14 19:26 ID:OJ2itBeZ
socket (SOCK, PF_INET, SOCK_STREAM, getprotobyname('tcp'));
このように、socketで作ったSOCKハンドルのポインタ操作はでき
ないのでしょうか。
どこで操作しても、ポインタは「-1」となっております。

理解不足で申し訳ありませんが、宜しくお願いいたします。

33 :nobodyさん:03/08/14 20:03 ID:???
>>32
ポインタ操作って何?

>2: それでこんな風にやってみたが・・・

ここを具体的に。

34 :nobodyさん:03/08/14 23:19 ID:???
>>20
やってることは10章の内容です
もう少し本を読み進めてから取りかかってはどうでしょうか

35 :nobodyさん:03/08/14 23:19 ID:???
>>32

操作をすることはできません。
Perlをやってる奴はおまえさんみたいなオタクが多い。
オタクはきもいから、気づかないんでしょうね。

36 :nobodyさん :03/08/15 00:16 ID:???
>>20
perl = cgi ではない。
お前さんがまずしなければならんのは、自分のパソコンにperlをインストールして
コマンドラインさっきのコマンドが実行するかを確認することやね。

この文章読んでわからんようであれば、あらしと取られかねんからそのつもりで。

#あと、perlをどうやってインストールしたらいいですかなんてことは聞くなよ(w

37 :nobodyさん:03/08/15 01:51 ID:???
 

38 :nobodyさん:03/08/15 02:22 ID:???
Perlの
s./// と tr///
の違いがいまいちわからないのですが、どういう違いがあるのでしょうか・・・

39 :nobodyさん:03/08/15 02:25 ID:???
sub get_select_form{
my ($name, $selected) = @_;
my ($key, $form);

$form .= '<select name="' . $name . '">' . "\n";
foreach $key (sort keys %{$name}) {
if($key eq $selected){
$form .= '<OPTION value="' . $key . '" selected>' . ${$name}{$key} . '</OPTION>' . "\n";
}
else{
$form .= '<OPTION value="' . $key . '">' . ${$name}{$key} . '</OPTION>' . "\n";
}
}
$form .= '</select>' . "\n";

return $form;
}

このようなselectボックスを生成するサブルーチンを作ったのですが、
sort keys %{$name}
のところで「〜HASH ref while "strict refs"〜」と怒られてしまいます。

no strict;は使いたくないので、何かよい解決策があれば教えてください。
すみませんが宜しくお願いいたします。

40 :nobodyさん:03/08/15 06:11 ID:???
>>38
たとえば $_='ABCDECBA' あたりで
s/ABC/123/

tr/ABC/123/
を試してみれば分かります。


41 :nobodyさん:03/08/15 09:33 ID:???
えーと、前にも一応お世話になった者で基本的な質問で悪いんですが、
配列に格納されているすべての文字列の先頭にある文字列を連結させたいんですが
下記のコードではうまくいきませんでした。
実際は頭に付ける文字列を変えて何回もこの処理を繰り返すのですが、
(サブルーチンにして、↓の例の$push_wordは引数として受け取る)
二回目からは、前回頭に付けた文字列と$push_wordを頭につけてしまいます。
簡単な応用技術ですがご教授願えたら幸いです。

【理想】
@bar = ("gg","dge","mpire","ncode","nglish")

@bar = ("Egg","Edge","Empire","Encode","English")
とするような処理(配列名barに意味はなし)

【こうしてみた】
(@barを定義した後、)
my $push_word = "E";
foreach (@bar){
   my $a = $push_word;
   $a .= $_;
   $_ = $a;
          }
print "@bar";



42 :nobodyさん:03/08/15 10:09 ID:???
2chみたいに、一度ポートチェックをする掲示板を作りたいのですが
if (connect (SOCK,sockaddr_in($target_port, $addr))) {

®ist;

}else{

&error();

}

みたいにしたのですが、テスト運用してみると
途中でスクリプトごと落ちることがあり悩んでいます。
どのようにしたら、安全な処理ができますでしょうか?

43 :nobodyさん:03/08/15 10:10 ID:???
®ist;
エスケープしてませんでした。
&regist; と書いたつもりです。

44 :nobodyさん:03/08/15 10:10 ID:???
あれ? &regist;です

45 :nobodyさん:03/08/15 10:20 ID:???
>>41
my @bar = ("gg","dge","mpire","ncode","nglish");
my $push_word = "E";

print map $push_word.$_, @bar;

漏れも勉強中なので自信ありませんが
こんな感じでどうでしょうか?
結果はEggEdgeEmpireEncodeEnglish



46 :nobodyさん:03/08/15 11:32 ID:???
>>39
引数がちょっと無茶じゃない?普通に考えて、
・selectの名前
・selectedにしたいもの
の他に、

・option要素のハッシュ
が必要でしょ。

例えば
<select name="chara">
<OPTION value="giko" selected>ギコ</OPTION>
<OPTION value="mona">モナー</OPTION>
</select>
を作るとして、その関数だと get_select_form("chara", "giko")を
呼ぶときに、グローバルの %chara にOPTIONの要素を入れておく
ってことになるけど、それって変じゃない?

引数リストを $name, $selected, $ref_values (順不同)みたいにすれば
いいと思うよ。

47 :nobodyさん:03/08/15 11:57 ID:???
>>45
すばやい回答thx。
print map 〜ってのってどういう意味?map関数ってとほほに載ってないんだけど…

あと、注文多くて悪いんだけど、Eを追加した後の@barが欲しいんだ。例で書いた最後の@barはおまけみたいなもん。ごめんな

48 :nobodyさん :03/08/15 12:18 ID:???
>>47
@bar map{ 'E' . $_ } @bar;

mapはぐぐって調べるぐらいはするこった・・・

49 :nobodyさん:03/08/15 12:53 ID:???
>>39
ソフト(シンボリック)リファレンスをやめて、リファレンスを使う。

>>41
foreach使うなら

foreach(@bar){
$_ = $push_word. $_;
}

mapは、リストを受けて、処理を行って、リストで返すパイプみたいなもの。
perldoc -f map

# >>48 '=' 抜けたね。

>>42
エラーかシグナルか、落ちる原因をはっきりさせてから対策を立てる。

50 :nobodyさん:03/08/15 13:19 ID:???
>>49
おうっ、盲点でした。
今は見えてる点のほうが圧倒的にすくないけどなw

51 :nobodyさん:03/08/15 16:53 ID:???
>>42
bbs.cgi 再開発プロジェクト
http://qb.2ch.net/test/read.cgi/operate/1053067870/508 ぐらいから参照(w

52 :nobodyさん:03/08/15 19:07 ID:???
>>45

3行目に
open (IO,"+<$logfile");
7行目に
while (<IO>){
 if ($_ =~ /<>$ip/){
  @y2=split(/<>/,$_);
  if ($y2[6] ne $ip){
   push(@log,$_);
  }else{
   $y2[0] = 'All Clear (^-^)v';  #消去後の名前
   $y2[5] = 'All Clear (^-^)v';  #消去後のメッセージ
   push(@log,"$y2[0]<>$y2[1]<>$y2[2]<>$y2[3]<>$y2[4]<>$y2[5]<>$y2[6]<>$y2[7]<>\n");
  }
 }else{
  push(@log,$_);
 }
}
11行目に
truncate(IO,0);
seek(IO,0,0);
print IO @log;
close (IO);
&reload2;
}
を入れると直ります。

53 :あぼーん:あぼーん
あぼーん

54 :あぼーん:あぼーん
あぼーん

55 :あぼーん:あぼーん
あぼーん

56 :あぼーん:あぼーん
あぼーん

57 :あぼーん:あぼーん
あぼーん

58 :あぼーん:あぼーん
あぼーん

59 :あぼーん:あぼーん
あぼーん

60 :あぼーん:あぼーん
あぼーん

61 :nobodyさん:03/08/15 21:25 ID:ifID8mtm
perlスクリプトを書いたのでそれをDLLファイルにしたいのですが。
あと、できればサブルーチンがそのままDLLの関数になるようにしたいのですが。
どういう風にすればよいのでしょうか。
環境はWinMEでActivePerlです。

62 :nobodyさん:03/08/15 21:49 ID:???
>>61
できるの?初耳

63 :山崎 渉:03/08/15 22:25 ID:???
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン

64 :nobodyさん:03/08/15 23:28 ID:???
>>49
そうですね。落ちる原因を考えて出直してきます(コナクテイイカ

65 :nobodyさん:03/08/16 04:33 ID:???
お早うございます。
初めてこのスレ来ました
レベル低すぎ

じゃあサヨウナラ

66 :nobodyさん:03/08/16 04:40 ID:???
my %hash = (
5 => 5,
10 => 10,
15 => 15,
30 => 30,
50 => 50
);

このようなデータを

foreach my $key (sort keys %hash) {
print $key;
}

このようにsortすると、

10
15
30
5
50

となりますよね。

この5が一番上にいくような効率のいい方法はないもの
でしょうか。

67 :nobodyさん:03/08/16 04:42 ID:???
>>66
sort {$a<=>$b} keys %hash


68 :KY:03/08/16 04:59 ID:???
>>66
sort {$a <=> $b}


69 :nobodyさん:03/08/16 05:02 ID:???
>>66
sort {$a<=$b>=$KIK} keys %doragonash

の方がうまくいきますね。それよりもあなたの知性の低さは迷惑です。
早く首吊って死んでくれることを祈ってます。


70 :nobodyさん:03/08/16 05:03 ID:???
>>67-68
こんな遅い時間に二人も答えてくれるなんて、ホントここは
いい人がいますね。

本当にどうもありがとう。

71 :あぼーん:あぼーん
あぼーん

72 :nobodyさん:03/08/16 05:04 ID:???
>>69
ごめんなさい。
だけど、親切に答えてくれて、本当にどうもありがとう。
感謝してます。

73 :あぼーん:あぼーん
あぼーん

74 :あぼーん:あぼーん
あぼーん

75 :あぼーん:あぼーん
あぼーん

76 :nobodyさん:03/08/16 05:07 ID:???
こんなかんたんな問題に答えラれなれないなんて、なんてクズなところでしょう。
本当、ここはくさった人間しかいませんね。とっとと死んでください!!

77 :nobodyさん:03/08/16 05:08 ID:???
削除依頼を出しまくっているやつは荒らしか?
かちゅ使用者には迷惑だって言っているだろうが。

78 :あぼーん:あぼーん
あぼーん

79 :nobodyさん:03/08/16 05:18 ID:???
>>46,49
返事が遅れてしまい、すみません。
ハッシュのリファレンスを使うことにより、無事解決
いたしました。
本当に有難うございました。

80 :あぼーん:あぼーん
あぼーん

81 :あぼーん:あぼーん
あぼーん

82 :あぼーん:あぼーん
あぼーん

83 :nobodyさん:03/08/16 07:26 ID:???
>>77
削除依頼よりかコピペ荒らしで挙げれば規制対象になるのにねぇ。。。

84 :nobodyさん:03/08/16 08:41 ID:mdqCqsMr
SQL文のデバッグなどで、printとは別にどこかへ変数の内容などを出力する場合、
どのような方法が考えられるでしょう?

85 :あぼーん:あぼーん
あぼーん

86 :nobodyさん:03/08/16 10:24 ID:22Mj43o0
>>62
お答え、ありがとうございます。
できるとは最初から思ってはいませんでしたが。
C言語とかでDLL書くのめんどくさいのでperlでかけたらなぁって。
とりあえずまずはperlcc使えるように環境を整えようかと思っております。
なぜか僕の環境、Cプログラムは吐き出すんですがコンパイルしてくれなくて。
しかもそのプログラムをコンパイルしてみるがエラー続出。
どうなんだ、LarryWallよw
仕方がなく自分でエラー部分を書き直してるのですが。
なんとかまともなCプログラム、吐き出させられないですかね。
ちなみに環境はWinMeでActivePerl、CコンパイラはDev-C++(GCC系)とBCCです。
解決方法がありましたら、教えてください。

87 :nobodyさん:03/08/16 10:32 ID:???
VC++を使う。

88 :nobodyさん:03/08/16 11:17 ID:???
>>83そう思うなら、おまえがコピペ荒らしとして規制依頼しろよ。できねーくせにガタガタぬかすな

89 :nobodyさん:03/08/16 11:18 ID:mv+dlsfN
KENTのネットクルーザーで
検索部分を改良したい。
英語の半角、全角をともに検索するには
どうしたらいいのでしょうか?

90 :nobodyさん:03/08/16 11:22 ID:???
>>89
【 スクリプト改造工房 PART 6 】
http://pc2.2ch.net/test/read.cgi/php/1047806915/


91 :助けてください:03/08/16 12:07 ID:???
1: 自分はこう言う事がしたい。
http://server/program.cgi/hogeというのを、http://server/hogeで見れるようにしたい
2: それでこんな風にやってみたが・・・
.htaccessに「ErrorDocument 404 /program.cgi」と追加。
3: こんなエラーが出て上手く行かなかった。
エラーは出ないけど、404エラーなので、エラーログがたまっていく・・・

どなたか助けてくださいm(__)m

92 :91:03/08/16 12:08 ID:???
ErrorDocument 404 /nph-test.cgi
だと、ヘッダに404となってしまうので、
ファイル名をnph-program.cgiにして、「print 'HTTP/1.0 200 OK'."\r\n";」とヘッダに追加。
でも、エラーログが(ry

93 :nobodyさん:03/08/16 12:23 ID:???
>>91
DirectoryIndex
スレ違いなので後は自分で調べな。

94 :nobodyさん:03/08/16 12:32 ID:R1l09wg/
>> 93
DirectoryIndex DirectoryIndex nph-program.cgi
と記載してあります。
やっぱプログラム側の問題じゃないからここじゃ駄目ですね。。。

95 :nobodyさん:03/08/16 12:37 ID:???
コピペ荒らしにマジレス。
残り少ない夏休みを2chでコピペ荒らしするだけに費やす気みたいだけど、
入門本くらい一通り読んで初心者レベルに到達してから来てね。

96 :nobodyさん:03/08/16 12:44 ID:???
>>86
perlをCにトランスは完全に出来ませんし
できたとしても使い物にはなりません(実行ファイルは馬鹿でかい)
あきらめたほうがいい
XSをつかうかswigをつかうか
perlのソースコードを書き換えるかしてください

Win32系のモジュールで直接DLL関数に引数はわたせます

97 :nobodyさん:03/08/16 12:52 ID:???
>>84
コメント扱いで出力。htmlなら<!-- -->内に埋め込む。batならremの後ろに書く。
自分でファイルをオープンして書き込み保存。
syslogに飛ばす。
変数デーモンを作成して、そこへの接続を全て記録。

>>91
そう言う用途にはapacheのモジュールのmod_writeを使うと便利。
が、確実にスレ違いなのでそれ以上言わない。

98 :nobodyさん:03/08/16 12:54 ID:???
mod_writeじゃねーよ>オレ
mod_rewriteね。

99 :91:03/08/16 13:05 ID:R1l09wg/
googleでmod_rewriteで探してきます。
Apacheの板orスレってあったっけ?(−−

100 :nobodyさん:03/08/16 13:11 ID:???
>>99
この板にも自宅サーバ板にもUNIX板にも

101 :91:03/08/16 13:49 ID:R1l09wg/
>> 100
おお。..._〆(゚▽゚*)メモメモ
ありがとうございました
それではいってきます(w

102 :91:03/08/16 15:16 ID:R1l09wg/
/htdocs/.htaccess: Invalid command 'RewriteEngine', perhaps mis-spelled or defined by a module not included in the server configuration
こんなエラーから進めない(;;

103 :91:03/08/16 15:39 ID:R1l09wg/
>>99
mod_rewriteが入っていない可能性が出てきたので他の方法ってありませんか?

104 :nobodyさん:03/08/16 15:54 ID:???
>>103
すれ違い

105 :84:03/08/16 15:54 ID:mdqCqsMr
>>97
>コメント扱いで出力。htmlなら<!-- -->内に埋め込む。batならremの後ろに書く。

……コロンブスの卵(^^; そーか、SQL実行しないでこーすればいいのか(汗)
アドバイスありがとうございました。

あと、「syslogに飛ばす」っつーのは、具体的にどうすればいいのでしょうか?
厨で申し訳ありませんが、ヒントなど頂ければ幸いです。よろしくお願いします。


106 :nobodyさん:03/08/16 16:25 ID:???
>>105
qx{/usr/bin/logger -s "Virus warning: uploader:[$host]:Detected $1 and deleted."};
みたいな。

107 :nobodyさん:03/08/16 17:11 ID:???
>>105-106
標準モジュールに Sys::Syslog というものが…。

108 :nobodyさん:03/08/16 17:40 ID:???
>>95

もう、動かないからあきらめた

109 :nobodyさん:03/08/16 17:41 ID:???
このスクリプト、どうもみても初心者のじゃねーよ

110 :あぼーん:あぼーん
あぼーん

111 :あぼーん:あぼーん
あぼーん

112 :あぼーん:あぼーん
あぼーん

113 :あぼーん:あぼーん
あぼーん

114 :あぼーん:あぼーん
あぼーん

115 :nobodyさん:03/08/16 18:09 ID:???
質問スレが珍しく荒れてるな〜と思ったら、全部 メール欄??? の仕業かい!w

116 :nobodyさん:03/08/16 18:41 ID:???
お。なるほど。メール欄であぼーんすればよかったのか

117 :84:03/08/16 18:57 ID:mdqCqsMr
……syslog.phってどーやってつくればいいのでせう?<厨なアタシ(T_T)

それはさておき、「Can't locate Date/Manip.pm in @INC〜」なんてエラーが出てきました。
CPANで「Install1 Date」はしたのですが、他になにかしなければならないことがあるのでしょうか?
重ね重ねで申し訳ありませんが、よろしくお願いします。

118 :nobodyさん:03/08/16 21:02 ID:???
>>117
一々作らんでも @INC に入ってない? UNIX系OS以外は知らんけど。
作るなら h2ph で。

見つからんって言われてるんだから、入れればいいじゃん。:-)
http://search.cpan.org/author/SBECK/DateManip-5.42a/

119 :nobodyさん:03/08/16 21:19 ID:???

十進数の数字があり、それを出力する時16進数にしたいのですが、
どのように変換すれば良いのでしょうか?

すみません、かなり初歩的な質問ですがお願いします。


120 :nobodyさん:03/08/16 21:20 ID:???
sprintf

121 :nobodyさん:03/08/16 21:33 ID:???
%x


122 :84:03/08/16 22:43 ID:mdqCqsMr
>>118
Date::Manipは入りました。……単純に「install Date::Manip」でOKなんですね。
厨でごめんなさい(T_T)

123 :あぼーん:あぼーん
あぼーん

124 :nobodyさん:03/08/17 01:00 ID:???
>>119
printf("%x", $a);
とか
$s = hex($a)
とか

125 :119:03/08/17 01:30 ID:???
返信遅れてすみません。

アホな質問に答えてもらって、とってもありがとうございました。
m(__)m

126 :nobodyさん:03/08/17 01:59 ID:okMBcaWD
ディレクトリ作成するときって
mkdir("mydir",0700);
のようにパーミッション指定できるが、
open(fp,">output.txt");
ってやって書き込むとパーミッションが自動的に644になります。
これを600にするにはどうしたらいいでしょう???

っつってもあとでchmodすればすむことなんだが、
open時に600にするようにできればしたい、


127 :nobodyさん:03/08/17 02:13 ID:???
>>126 umask

128 :nobodyさん:03/08/17 02:29 ID:???
>>126

いったんファイルを削除します。それからディレクトリで呼び出すを選ぶと
復元できるので、その設定でパーミッションを設定すると固定できます。

129 :あぼーん:あぼーん
あぼーん

130 :あぼーん:あぼーん
あぼーん

131 :あぼーん:あぼーん
あぼーん

132 :あぼーん:あぼーん
あぼーん

133 :あぼーん:あぼーん
あぼーん

134 :あぼーん:あぼーん
あぼーん

135 :あぼーん:あぼーん
あぼーん

136 :nobodyさん:03/08/17 02:38 ID:???
>>126
IO::Fileモジュール使うとパーミッションを指定しながらオープンできます。
(sysopen互換のO_XXX指定を使うとファイルロックしながらオープンできたり便利。)

137 :126:03/08/17 02:42 ID:???
大変参考になったぞ。
おめーらに感謝。

138 :あぼーん:あぼーん
あぼーん

139 :nobodyさん:03/08/17 05:55 ID:EjdzKOi8
POP3サーバと接続してメールを閲覧するプログラムを
書きたいのですが、これをsocketモジュールを使わない
で行うことは可能でしょうか。

初心者ですみませんが教えてください。

140 :nobodyさん:03/08/17 06:21 ID:1qkkfnQM
>>139

Net::POP3

141 :nobodyさん:03/08/17 06:22 ID:???
化膿。

142 :あぼーん:あぼーん
あぼーん

143 :あぼーん:あぼーん
あぼーん

144 :あぼーん:あぼーん
あぼーん

145 :あぼーん:あぼーん
あぼーん

146 :あぼーん:あぼーん
あぼーん

147 :あぼーん:あぼーん
あぼーん

148 :あぼーん:あぼーん
あぼーん

149 :nobodyさん:03/08/17 13:11 ID:8iaOJK9H
X.cgiの中の、一部の数字を取り出したいのですが。
X.cgiの中身はこんなです

1,データA,データB,データC,
2,データA,データB,データC,
3,データA,データB,データC,

この中の、最後のデータの数字「3」を変数に入れたいのです。

open(IN,"X.cgi") ;
while (<IN>) {
$num = split(/,/);
}
close(IN);
print $num;

これ全然違いますが、$numに「3」が入ってくるようにしたいんです。
よろしくおねがいします。

150 :nobodyさん:03/08/17 13:23 ID:???
>>149
splitの使い方がまちがっとる
$num = split(/,/); のすぐ下に print $num; を入れてみ。
その後で、splitの説明を読むとグー

151 :nobodyさん:03/08/17 14:12 ID:???
>>149
$num = split(/,/); の2つ下に print $num; を入れる。
それからwhile (<IN>) { をwhile($IN1 > 0){
に変える。
その後で、スクリプトを3の入るようにすればOK。
上はどっかの馬鹿だから無視しろ。

152 :あぼーん:あぼーん
あぼーん

153 :あぼーん:あぼーん
あぼーん

154 :あぼーん:あぼーん
あぼーん

155 :あぼーん:あぼーん
あぼーん

156 :nobodyさん:03/08/17 14:16 ID:???
>>126
おまえの脳みその程度もよくわかりました。
もう、二度と来ないでくださいね。すっごいむかつく!!
くだらん質問する暇あったら自分で調べろ!死ね!!

157 :あぼーん:あぼーん
あぼーん

158 :あぼーん:あぼーん
あぼーん

159 :あぼーん:あぼーん
あぼーん

160 :nobodyさん:03/08/17 14:37 ID:???
>>151 は例の荒しているヴァカだろ?


161 :nobodyさん:03/08/17 15:07 ID:???
>>160
そうみたいだな

162 :nobodyさん:03/08/17 15:22 ID:???
レス削除で削除人からコピペで依頼してくれってあったから、
運用情報のほうへ回そう
荒らしとしてアク禁しますっていうことなんじゃないか?

163 :nobodyさん:03/08/17 15:43 ID:???
>>160
なんでアレは削除依頼に入れてくれないんだろう。

164 :nobodyさん:03/08/17 17:34 ID:FkUVLAYO
#! /usr/local/bin/perl

while(<STDIN>) {
    print;
}

のようなフィルター(そのまま出力するだけですが(;´Д`))を作った後、
DOSの場合、どうやって実行するんですか?

すごい初歩的な質問でスイマセン

165 :nobodyさん:03/08/17 17:36 ID:???
Perlでバイナリファイルに保存したいんだけど、なにかあります?

166 :nobodyさん:03/08/17 18:11 ID:???
>>164
perlにパスが通っており、
それがtest.plというファイルなら、
test.plのあるフォルダにcdコマンドで移動し、
perl test.pl
と打ってEnterを押す。

とか、普通に答えてみる。

コーディングの質問じゃねー。

167 :nobodyさん:03/08/17 18:16 ID:???
>>165
binmode( FILE );
print FILE $buff;

168 :nobodyさん:03/08/17 18:23 ID:FkUVLAYO
>>166
出来ました。ありがとうございます。
というかスレ違いでしたか、スイマセン。今から気をつけます。


169 :nobodyさん:03/08/17 18:24 ID:???
>>165
>Perlでバイナリファイルに保存したいんだけど、なにか(いいバイナリファイル)あります?
画像ファイルがバイナリファイルだろうね。

170 :あぼーん:あぼーん
あぼーん

171 :nobodyさん:03/08/17 18:44 ID:ycQ+dswy
アクセス解析のCGI作ったんですけど、
フレームを使っている性で全部リファラがindexになってしまいます。
使っている鯖はSSIは使えませんし、.htaccessも使えません。

どうすればリファラが取れるんですか?教えてください。御願いします。

すれ違いだったらすいません。

172 :nobodyさん:03/08/17 18:53 ID:???
>171
CGIスレ向き。


173 :あぼーん:あぼーん
あぼーん

174 :139:03/08/17 19:29 ID:???
>>140
説明不足ですみません。
要はモジュールを使わずにpop接続を行いたいのです。

175 :あぼーん:あぼーん
あぼーん

176 :149:03/08/17 19:40 ID:8iaOJK9H
>>151
ありがとうございました。
ちょっとうまくいかないんですが(TT)
なんか根本的に判ってないかもしれないので出直します。
splitの勉強を・・・

177 :nobodyさん:03/08/17 19:41 ID:???
>>174
一旦モジュールを使って望みの動作をするスクリプトを組み、
コードを全てインライン展開する。

178 :nobodyさん:03/08/17 19:57 ID:???
>>176
>>151は荒氏だから参考しるな!
病気がうつるぞ〜。
splitの勉強汁〜。


179 :nobodyさん:03/08/17 20:35 ID:???
荒クンを解析してみたよ。
・17歳童貞
・高校生だが、成績が追いつかず、学校でも苛められて現在引き篭もり中。近々退学予定。
・自己管理が出来ず、体系は肥満気味。お風呂に入らないので臭い。
・家族構成は共働き両親2人とペットのハムスター20匹(名前付き)
・起きている間は、ほぼインターネットを利用している。
・最近KENT-WEBからASKAを借りてきて、初めてPerlを知った。
・日ごろから、書き込む度に叩かれている某掲示板には恨みを抱いているようだ。
・もう2ヶ月ほど家族意外と顔を合わせた事は無い。

180 :nobodyさん:03/08/17 20:42 ID:???
>>174ソケット使ってやるしかないですナァ…。

181 :nobodyさん:03/08/17 20:53 ID:???
>>174
http://x68000.startshop.co.jp/~68user/net/
ここのサンプルはSocketモジュールを使ってるけど、
「サンプルがperl5専用なワケ」を読めば、すぐperl4対応
(->モジュール不使用)にできるはず。

しかし、なんでモジュールを使わずに?

182 :nobodyさん:03/08/17 20:58 ID:qWovZd+9
>>179
まぁまぁ、そう自己紹介しなさんな。

183 :nobodyさん:03/08/17 21:17 ID:???
>>128
ネタはマジレスの前にしましょう。

184 :nobodyさん:03/08/17 23:06 ID:???
#!/usr/local/bin/perl
require './cgi-lib.pl';


%form = &read_input('euc');
$name = $form{'name'};

print "Content-type: text/html\n\n";
print "<html><head><title>結果</title></head><body>\n";
print "<p>名前:$name</p>\n";
print "</body></html>\n";

↑のようなスクリプト作ってANHTTPDを起動し、
実行しようとしても「サーバーがみつかりません」が表示されます。
何がいけないんでしょうか?

185 :nobodyさん:03/08/17 23:06 ID:???
IO::File の使い方教えてください
日本語で解説してある際とがぜんぜんないもんで。

use IO::File;
my $fh = new IO::File('log.dat','r'); #読み込み
my $fh = new IO::File('log.dat','w'); #書き込み
my $fh = new IO::File('log.dat','r+w'); #両方

などでオープンできるとこまではわかったんだが、
このファイルから全部読み込む場合にはどうしたらいい?

my @array = $fh->read;   ← こんな感じでよいのかい?

あと、書き込むときは

$fh->print('文字列');

で、可能みたいなんだが、英語が四面からわからん。

186 :nobodyさん:03/08/17 23:18 ID:???
>>184
perlコーディングとは「全く」関係無いですね。そのエラーから「推測」すると、
あなたのクライアントからサーバーが見れていないようです


187 :nobodyさん:03/08/17 23:20 ID:???
> で、可能みたいなんだが、英語が四面からわからん。

こんな事言う様じゃ解答する気になれないな。
これを機会に読めるように辞書片手に必死こいて読んで見たら?

解答者の中にはそうやってスキルとか知識身につけてる人もいるんだから

188 :nobodyさん:03/08/17 23:32 ID:???
>>184
httpdの設定を確認汁。

189 :nobodyさん:03/08/17 23:51 ID:???
>>186,>>188
回答ありがとうございます。
でもANHTTPDは「CGIを実行する」にチェックが入ってます・・・


190 :139:03/08/18 00:10 ID:???
>>181
仕事でパッケージ化するかもしれないといわれたので、
完全オリジナルでなかったら何かと問題が出るかと思い、
質問させていただきました。
もともとは趣味で作ってたものなので。

標準モジュールは使っても問題ないのでしょうかねぇ、、、

191 :nobodyさん:03/08/18 00:34 ID:???
>>189
どっちにしてもさっきのソースとは関係なし
ANHTTPDがちゃんと動くことを確認してから質問せよ

192 :nobodyさん:03/08/18 00:47 ID:???
>>189
そもそもCGI以外はどうなのか。閲覧可能なのか。

193 :nobodyさん:03/08/18 01:29 ID:???
>>189
板違いだ!ヴォケ!!二度と質問するな!クソ坊主!!

194 :nobodyさん:03/08/18 01:32 ID:???
>>139
できねーっていってんだろ!馬鹿!!
おまえみたいなよく読まない奴は、うざいからさ。とっととどっか行ってくれない?
まじに迷惑なの、わかんない??

195 :あぼーん:あぼーん
あぼーん

196 :あぼーん:あぼーん
あぼーん

197 :あぼーん:あぼーん
あぼーん

198 :あぼーん:あぼーん
あぼーん

199 :あぼーん:あぼーん
あぼーん

200 :あぼーん:あぼーん
あぼーん

201 :あぼーん:あぼーん
あぼーん

202 :あぼーん:あぼーん
あぼーん

203 :nobodyさん:03/08/18 05:32 ID:???
>>174
getprotobyname
gethostbyname
socket
bind
connect
これらを使えばOK


204 :nobodyさん:03/08/18 05:42 ID:???
bindはいらないと思う。


205 :nobodyさん:03/08/18 06:19 ID:???
Date::Simple という、
日付のチェックを行う便利なライブラリがあったので
インストールしたんですが、なぜか使えません。

my $date = new Date::Simple(1999,12,31);

を実行すると

Undefined subroutine

というエラーが出ます。new関数が定義されてないとか言われ増す。ためしに

print $Date::Simple::VERSION;

とやってみたら、ただしく 1.03 と表示されたので、
ライブラリのパスが間違っているとかそういうことはないと思うんですが、
どうやったら使えます?

206 :nobodyさん:03/08/18 09:22 ID:???
>>204
理由は?それに、「思う」とか不確実な表現されても理由も書かないんじゃ全然説得力無い

207 :nobodyさん:03/08/18 09:38 ID:???
>>206
TCPクライアントなら必要なし。
http://www.kt.rim.or.jp/~ksk/sock-faq/unix-socket-faq-ja-3.html#ss3.6
http://www.kt.rim.or.jp/%7ekbk/perl5.005/perlipc.html#Internet_TCP_Clients_and_Servers

208 :nobodyさん:03/08/18 11:11 ID:rz7xuT5a

if($ran==6)
だと6の時という事ですが、
6以外と指定するのはどう書くんですか?

209 :nobodyさん:03/08/18 11:12 ID:???
>>208
http://www5a.biglobe.ne.jp/~n_rieko/perl/5.htm

210 :nobodyさん:03/08/18 11:31 ID:???
>>205
エラーの原因はそれだけでは分からんが、
Date::Simple の最新版は 2.04 だね。
http://search.cpan.org/author/JTOBEY/Date-Simple-2.04/

211 :nobodyさん:03/08/18 12:12 ID:WxMQyRS0
設置が超簡単で商用OKのスクリプトを開発中

スクリプト1個でblogを作るスレ
http://s37.1000gex.net/test/read.php/pc/1061132998/

・2chブラウザはこちら

スクリプト1個でblogを作るスレ
http://s37.1000gex.net/test/read.cgi?bbs=pc&key=1061132998



212 :nobodyさん:03/08/18 12:48 ID:???
>>211ブラクラ

213 :nobodyさん:03/08/18 12:48 ID:???
>>211
1000gex って糞7じゃねーか

214 :nobodyさん:03/08/18 13:06 ID:???
うちの2chブラウザだと、
http://s37.ポン既知/test/read.php/pc/1061132998/ と表示されますが何か?

215 :nobodyさん:03/08/18 13:19 ID:???
>>206
ワラタ 死ねや厨房

216 :nobodyさん:03/08/18 13:31 ID:???
>>215↑糞7?

217 :nobodyさん:03/08/18 14:27 ID:PgjPpzIP
>>206
普通にキモイと思います。多分伊達眼鏡とかかけてる人。

218 :nobodyさん:03/08/18 14:35 ID:???
>>205
useしてる?

・・・してないわけないか。

219 :nobodyさん:03/08/18 14:48 ID:OsKLKOac
ちょうド素人でスマソ
重いPerl製CGIをサーバーに置こうと思ってるんですが、
少しでも動作を軽くしようと思っています。
そこでききたいのですが、Perlのコメント部分を全て消して余分な部分を少しでも減らしたら少しでも軽くなるでしょうか?
コメントを消したりしたら軽くなる、ってはなし聞いたことないんですが、実際のところはどうなんですか?
一応、少しだけでも軽くなれば目標達成なので。

220 :nobodyさん:03/08/18 14:50 ID:WxMQyRS0
2行目にexit;って入れたら最速になるぞ

221 :nobodyさん:03/08/18 14:56 ID:???
>219
ナノ秒やピコ秒単位でなら早くなるかもね。

222 :nobodyさん:03/08/18 16:47 ID:???
>>217糞7?

223 :nobodyさん:03/08/18 18:35 ID:???
perlでファイルを新規作成するにはどうしたらいいのでしょうか?
書き込み時にファイルが存在しないとファイルが作成されるのは知ってるのですが、

unless (-e $datafile){
    <unlinkの逆> $datafile;
};

をやりたいのですが。。。

224 :nobodyさん:03/08/18 18:44 ID:P7pot7R5
>>223
touch ちんこ

225 :nobodyさん:03/08/18 18:47 ID:???
乱数の生成は分かるのですが、
パスワードの生成(しかも、使える文字は[a-z0-9]で大文字はなし)が
どうすればいいのでしょうか?

226 :223:03/08/18 18:49 ID:???
>>224
すいません。perlからunixのコマンド起動できないんです。。。

227 :nobodyさん:03/08/18 18:54 ID:???
>>219

まず、ファイルを削除します。それから、ファイルの復旧を行って
オプションを、コメントなしに設定すると軽くなります。

228 :nobodyさん:03/08/18 18:56 ID:???
>>223

板違いだから、WEB板へいけ。邪魔だ。消えろ!

229 :nobodyさん:03/08/18 18:57 ID:???
>>226
そんなエレガントな(?)関数は無いよ。

sub touch ($) {
 local *FH;
 my $ret = open(FH, ">>$_[0]");
 close(FH);

 return $ret;
}

230 :nobodyさん:03/08/18 18:57 ID:???
>>225
乱数を細かく設定するには、ファイルの削除で削除してから
設定します。

231 :nobodyさん:03/08/18 18:58 ID:???
>>226

そのパソコンはできないんだよ。
初心者の質問は違うとこでやってね。迷惑。うざい!死ね!!

232 :nobodyさん:03/08/18 18:59 ID:???
>>223
open FILE , ">$datafile" unless -e $datafile;
close FILE;

これで空ファイルつくるだろ。

233 :nobodyさん:03/08/18 19:03 ID:???
>>228
>>231
もちっとましな物言い、できんのかよ…
自分らの書いたせりふ、声に出して言ってみ


234 :nobodyさん:03/08/18 19:03 ID:???
>>225
なぜか面白いことがしたくなる…

@char = (0 .. 9, 'a' .. 'z', 'A' .. 'Z');
print join '' @char[ map(int rand @char, 1 .. 8) ];

235 :nobodyさん:03/08/18 19:04 ID:???
おっと。コンマが抜けた。

print join '', @char[ map(int rand @char, 1 .. 8) ];


236 :nobodyさん:03/08/18 19:05 ID:???
大文字は無しか…うぅ
@char = (0 .. 9, 'a' .. 'z');

237 :あぼーん:あぼーん
あぼーん

238 :あぼーん:あぼーん
あぼーん

239 :nobodyさん:03/08/18 19:09 ID:???
>>225
こうだな

@char = (0 .. 9, 'a' .. 'z', 'A' .. 'Z');
print join '' @char[ while(int rand @char, ..) ];


240 :あぼーん:あぼーん
あぼーん

241 :あぼーん:あぼーん
あぼーん

242 :あぼーん:あぼーん
あぼーん

243 :nobodyさん:03/08/18 19:28 ID:???
>>205
newメソッドがないと
Can't locate object method "new" via package "Date::Simple"
とでるので、別の原因があると思われ。

Date::Simpleはpure perlだから、/Date/Simple.pmを探してみそ。

244 :nobodyさん:03/08/18 20:01 ID:???
>233
荒らしは放置しる。

245 :nobodyさん:03/08/18 23:23 ID:???
無知がこんどは糞7扱いか。

246 :nobodyさん:03/08/19 00:55 ID:???
簡単なことだと思うのですが、
CGI(Perl)で、カレントディレクトリにあるHTMLを、
呼び出して、それをそのまま表示する方法が分かりません。
具具ってもなかなか見つからないので、お助け下さい。

247 :nobodyさん:03/08/19 01:08 ID:???
>>246
(略)
if(!open(FILE,"file.html")){
print "Can't open\n";
exit(1);
}
undef $/;
$a=<FILE>;
print $a;


248 :nobodyさん:03/08/19 01:48 ID:???
何故ぐぐっても分からないか。

・そんなことしても意味がない
・簡単すぎるから解説するまでもない


249 :nobodyさん:03/08/19 01:53 ID:???
>>246
my $file = "hoge.html";
open(Fh, $file) or die "Could'nt open $file $!\n";
print while(<Fh>);
close(Fh);

Perlっぽく。
CGIならContent-typeとか、dieするとまずいとかあるから、注意。

250 :nobodyさん:03/08/19 03:43 ID:???
>>249
ファイルハンドルは全て大文字で書かなくても委員会?
動作はするだろうがな

251 :nobodyさん:03/08/19 18:46 ID:???
>>246

何故ぐぐってもわからない馬鹿が質問するか?

>>246 は生きる価値のないクズ!
>>246 は初心者で板違いの迷惑やろう
・早く死ね!



252 :あぼーん:あぼーん
あぼーん

253 :あぼーん:あぼーん
あぼーん

254 :あぼーん:あぼーん
あぼーん

255 :あぼーん:あぼーん
あぼーん

256 :あぼーん:あぼーん
あぼーん

257 :あぼーん:あぼーん
あぼーん

258 :あぼーん:あぼーん
あぼーん

259 :あぼーん:あぼーん
あぼーん

260 :nobodyさん:03/08/19 19:06 ID:???
>>250
別に大文字じゃなけりゃいかんという決まりはなかったと思うが。

261 :nobodyさん:03/08/19 19:12 ID:???
>>260
が、大文字でなかったために色々妙な動きをしてるやつがいたな。
意図していない動きをしているので、大文字でやっとけってことだよな。
大文字にしといたら、それがハンドルであることに気付きやすくなってちょっと幸せ。

262 :nobodyさん:03/08/19 21:49 ID:???
大文字といっても、DATAなんかは避けといたほうがいいね。
別に使っても害はないけど、なんか気分的に。


263 :nobodyさん:03/08/19 22:14 ID:IYLLDi9m
時差を修正するにはどうすりゃいいでつか?
ぐぐったけど、初心者なんで分からないでつ。

264 :nobodyさん:03/08/19 22:23 ID:???

ここ大量のモロ画像とモロ動画がある!
びっくり・・・・・
http://vs2.f-t-s.com/~moemoe/index.html

265 :nobodyさん:03/08/19 22:26 ID:???
>>262
FAIRUHANDORUとかがよろしい。
一目瞭然さ!

266 :nobodyさん:03/08/19 22:52 ID:???
>>263
「perl タイムゾーン」

267 :nobodyさん:03/08/19 23:55 ID:???
     ____
    /∵∴∵∴\
   /∵∴∵∴∵∴\
  /∵∴∴,(・)(・)∴|
  |∵∵/   ○ \|
  |∵ /  三 | 三 |   / ̄ ̄ ̄ ̄ ̄
  |∵ |   __|__  | < おい、誰かPerl教えろ!!
   \|   \_/ /   \_____
     \____/


268 :nobodyさん:03/08/19 23:55 ID:???
     ____
    /∵∴∵∴\
   /∵∴∵∴∵∴\
  /∵∴∴,(・)(・)∴|
  |∵∵/   ○ \|
  |∵ /  三 | 三 |   / ̄ ̄ ̄ ̄ ̄
  |∵ |   __|__  | < パールだ!パール!真珠じゃねえぞ
   \|   \_/ /   \_____
     \____/


269 :nobodyさん:03/08/19 23:56 ID:???
     ____
    /∵∴∵∴\
   /∵∴∵∴∵∴\
  /∵∴∴,(・)(・)∴|
  |∵∵/   ○ \|
  |∵ /  三 | 三 |   / ̄ ̄ ̄ ̄ ̄
  |∵ |   __|__  | < まずはパンチ5分の2な!
   \|   \_/ /   \_____
     \____/


270 :nobodyさん:03/08/19 23:57 ID:???
     ____
    /∵∴∵∴\
   /∵∴∵∴∵∴\
  /∵∴∴,(・)(・)∴|
  |∵∵/   ○ \|
  |∵ /  三 | 三 |   / ̄ ̄ ̄ ̄ ̄
  |∵ |   __|__  | < おまえは5分の2、おれのケーキは5分の3な
   \|   \_/ /   \_____
     \____/


271 :nobodyさん:03/08/20 00:01 ID:???
     ____
    /∵∴∵∴\
   /∵∴∵∴∵∴\
  /∵∴∴,(・)(・)∴|
  |∵∵/   ○ \|
  |∵ /  三 | 三 |   / ̄ ̄ ̄ ̄ ̄
  |∵ |   __|__  | < あと、イフとエルスとリリスとアダムも教えろよ!
   \|   \_/ /   \_____
     \____/


272 :nobodyさん:03/08/20 02:03 ID:???
>>262
やっぱIN,OUTだな。ほとんど。

273 :205:03/08/20 02:43 ID:???
Date::Simpleについて質問した者だが、
実は mod_perl を使っていたんだが、
今日、mod_perl を外して、普通のCGIとして実行させたら、
Date::Simple の new メソッドが正常に動きました。

この場合、mod_perl が原因なのは明らかだが、
具体的に mod_perl のなにがおかしかったのかよくわかりません。
わかる人レスください、

274 :nobodyさん:03/08/20 03:55 ID:LVmz2hpa
本を買ってきて見ながら勉強し始めたものです。
メモ帳に本のとおりにこのように書きました。
(長いので2回にわけます)
#!C:\Perl\bin\perl
$agent = $ENV{'HTTP_USER_AGENT'};
print "Content-type:text/html\n\n";
print "<html>\n";
print "<head>\n";
print "<title>環境変数</title>\n";
print "</head>\n";
print "<body>\n";
print "環境変数の取り出し\n";
print "<hr/>\n";
print "$agent\n";
print "</body>\n";
print "</html>\n";
exit;

275 :続きです:03/08/20 03:56 ID:LVmz2hpa
上のものをftpソフトでアップすると、
「環境変数の取り出し」という文字はブラウザに表示されるのですが、
本に載っているような実行結果が出力されません。
(本にはMozilla/4.0(compatible〜...と載っています)
ブラウザのソースを見てみると
<html>
<head>
<title>環境変数</title>
</head>
<body>
環境変数の取り出し
<hr/>

</body>
</html>
とだけなっていて、空白のようです、
アドバイスお願いいたします、、

276 :_:03/08/20 04:08 ID:???
http://homepage.mac.com/yamazaki8

277 :nobodyさん:03/08/20 04:11 ID:???
#!C:\Perl\bin\perl

print "<hr/>\n";

278 :_:03/08/20 04:17 ID:???
http://homepage.mac.com/yamazaki8/hankaku01.html

279 :274:03/08/20 04:18 ID:???
わー、書き間違えてました、
1番上は#/ur/local/bin/perlの書き間違いです
print "<hr />\n";これを取り外せばよいのでしょうか、
やってみます

280 :nobodyさん:03/08/20 04:41 ID:???
print "<hr />\n";
これは単にタグがおかしいだけ。

281 :274:03/08/20 05:02 ID:???
FTPソフトがなぜか接続しました、のまま止まってしまって
やっとつながりました、遅くなりました、
やってみたのですがMozilla/4.0(compatible〜...と出てくれません、、
次のページのものはずらずらっと文字が表示されて成功だったのですけど、
1番最初のができないまま進めてしまってよいものなのかなぁ、、
寝て起きたらもうすこしやってみます、
>>227さん、>>280さん、お返事ありがとうございました


282 :nobodyさん:03/08/20 06:12 ID:???
>>281
うちで使ってるサーバーでは、そのコードでちゃんと動いたよ。


283 :nobodyさん:03/08/20 07:47 ID:???
>>263
「何の時差をどう修正したいか」ぐらいは最初から書こうよ。

>>273
思い込みはデバッグの敵だぞ。君のスクリプトが
mod_perl 上で走る為の要件を満たしていないだけかも知れん。

ともかく検証に必要な最低限のコードが示されないと、
何が悪いのかなんて分からんよ。

>>281
ブラウザやプロキシの設定で HUA 消してない?

my $exists = exists $ENV{'HTTP_USER_AGENT'} ? 'exists' : 'not exists';
my $defined = defined $ENV{'HTTP_USER_AGENT'} ? 'defined' : 'undef';
my $agent = $ENV{'HTTP_USER_AGENT'};
...
print "$exists, $defined, [$agent]\n";

とかしてみ。

284 :nobodyさん:03/08/20 08:00 ID:???
>>280
どこがどうおかしいのか教えて欲しい。

285 :nobodyさん:03/08/20 09:12 ID:???
280じゃないけど
<hr/>
最近のブラウザじゃちゃんと解釈すると思うが…。
まぁ、考慮して<hr />にしと居た方が良いかもしれないけど。


286 :nobodyさん:03/08/20 09:53 ID:???
<hr/>ってかなり普通だし。
XHTMLなら最初に宣言つけろってことか?

287 :nobodyさん:03/08/20 10:22 ID:???
>>286
hrと/の間にスペースを入れろってことじゃないの?

288 :nobodyさん:03/08/20 10:26 ID:???
<hr/>ってのを知らんかっただけだろ

まあ>>275のHTMLに<hr/>って有っても滑稽なだけだが

289 :nobodyさん:03/08/20 10:43 ID:???
>>287
スペースは要らんだろ?

290 :nobodyさん:03/08/20 10:45 ID:???
要らないよ。

291 :nobodyさん:03/08/20 11:15 ID:???
>>289-290
287だがスマソ

292 :nobodyさん:03/08/20 11:20 ID:???
>>291
とりあえずスペース入れろ。
それと一回ファイルを削除して、復元しろ。わからないところ、間違っているところが表示される。

293 :nobodyさん:03/08/20 11:21 ID:???
#!/usr/bin/perl

# CGIヘッダの出力
print "Content-type: text/html\n\n";

while($HP1 > 0) and ($HP2 > 0){
srand1;
srand2;
}

# Player1
$HP1 = 400 - $kougeki1;
$KIK1 = 60;
$PAN1 = 20;
$DF1 = 10;

# Player2
$HP2 = 300 - $kougeki2;
$KIK2 = 100;
$PAN2 = 40;
$DF2 = 0;

# Player1
$kougeki1 = srand;

# Player2
$kougeki2 = srand2;


294 :nobodyさん:03/08/20 11:21 ID:???
srand;
if($mode == 1){
$offense = \%you;
$defense = \%my;
}elsif($mode == 2){
$offense = \%my;
$defense = \%you;
}
if( int(rand(2)) ){
#punch
$damage =
$offense->{'$PAN1'} - $defense->{'$DF2'};
if(!$rand = int(rand(5))){
#half
$damage = int($damage / 999);
}elsif($rand < 3){
#miss
$damage = "";
}
}else{
#kick
$damage =
$offense->{'$KIK1'} - $defense->{'$DF2'};
}


295 :nobodyさん:03/08/20 11:21 ID:???
srand2;
if($mode == 1){
$offense = \%you;
$defense = \%my;
}elsif($mode == 2){
$offense = \%my;
$defense = \%you;
}
if( int(rand(2)) ){
#punch
$damage =
$offense->{'$PAN2'} - $defense->{'$DF1'};
if(!$rand = int(rand(5))){
#half
$damage = int($damage / 999);
}elsif($rand < 3){
#miss
$damage = "";
}
}else{
#kick
$damage =
$offense->{'$KIK2'} - $defense->{'$DF1'};
}


296 :nobodyさん:03/08/20 11:22 ID:???
($damage < 0) and ($damage = 0);
$defense->{'HP1'} -= $damage;

($damage < 0) and ($damage = 0);
$defense->{'HP2'} -= $damage;

# HTMLの出力
print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\">\n";
print "<html>\n";
print "<head><title>対戦バトル</title></head>\n";
print "<body>
<p>Player1:体力は$HP1です</p>
<p>Player2:体力は$HP2です</p>
<p>Player1は<big>$kougeki1</big>のダメージを与えた。</p>
<p>Player1は<big>$kougeki1</big>のダメージを受けて混乱した。
<p>Player1は<big>$kougeki1</big>のダメージで野クソを食べ始めた。
<p>Player2は<big>>$kougeki2</big>のダメージを与えた。</p>
<p>Player2は<big>>$kougeki2</big>のダメージを受けて、道路で裸踊りを始めた。
<p>Player2は<big>>$kougeki2</big>のダメージで電車の中のブス女をレイプし始めた。</p></p></body>\n";
print "</html>";

297 :nobodyさん:03/08/20 11:41 ID:???
>>292
スペース要らんてば。


298 :nobodyさん:03/08/20 12:08 ID:???
スペースは要るが、そこが問題の本質ではないってことだな。

299 :nobodyさん:03/08/20 12:31 ID:???


300 :274:03/08/20 12:59 ID:dhaQVioy
こんにちは、原因がわかりました、
怒られそうです、

ノートンインターネットセキュリティを無効にしたら
きちんとMozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)と表示されました、
あー、、自分が嫌になりました、、
もっとちゃんといろいろやってみて
どうしてもこうしてもわからなくなったら書き込むようにします、
お騒がせいたしました、申し訳ありません、、

301 :nobodyさん:03/08/20 15:26 ID:???
<hr/>でもいいけど、<hr />のほうがいい。

302 :nobodyさん:03/08/20 15:27 ID:???
>>300
やっぱり>>283ということでしたか。
ノートンはリファラなんかも消すので注意ですな

303 :nobodyさん:03/08/20 15:45 ID:ynfrwlt/
文字列の並び換えを他の数値リストから行ないたいのですが、どうしたらいいでしょうか?

readdir()で取得したリスト@file_listを
for($i = 0;$i < @file_list;$i++){
$time[$i] = (stat("$file_list[$i]"))[9];
}
で取得した最終更新日でソートしたいのですが。
@timeをソートした時に、同じ順番で@file_listもソートするような事は
どうしたらいいでしょうか?

お願いします。

304 :nobodyさん:03/08/20 15:59 ID:???
>>303
ファイルリスト取得時から根本的に変えると

my @file = map { name => $_, time => (stat $_)[9] }, readdir DIR;
print
 map { scalar localtime $_->{'time'}, " $_->{'name'}\n" }
 sort { $a->{'time'} <=> $b->{'time'} }
 @file;

305 :303:03/08/20 16:34 ID:???
>>304さん、ありがとです。
動いております。並び換えられているようです。
しかしながら、map童貞には、何故動いてるかわからんです(まだ1行目を理解しただけ)。
正直おっかないですw

306 :303:03/08/20 16:57 ID:???
for($i = @time;$i != 1;$i--){
  for($j = 0;$j < (@time - 1);$j++){
    if($time[$j] < $time[($j + 1)]){
      $tmp = $time[$j];
      $time[$j] = $time[($j + 1)];
      $time[($j + 1)] = $tmp;

      $tmp = $list[$j];
      $list[$j] = $list[($j + 1)];
      $list[($j + 1)] = $tmp;
    }
  }
}
結局こんなのを書いて逃げてしまう漏れは駄目ぽです。
>>304さん、こちらでとりあえずお茶濁しときます。
perlらしい書き方も勉強せねばならんです。イキナリ読めなくなる。

307 :nobodyさん:03/08/20 17:44 ID:???
>>306
@file と @time でやるなら

my @file = readdir DIR;
my @time = map { (stat $_)[9] } @file;

# 添え字を時刻昇順でソート
foreach (sort { $time[$a] <=> $time[$b] } 0..$#file) {
 print(scalar localtime $time[$_], " $file[$_]\n");
}

こういうのは Perl 的な慣用句だけど、難しい事はしてないから
関数リファレンス片手に順番に読み解けばすぐ理解できるよ。

308 :nobodyさん:03/08/20 20:13 ID:???
>>303
mapはforeachの亜種と思えば良いとおもう。
覚えとくと便利。手放せない。まじ。
基本的には右側の配列を順番に回してるだけ。
@array1 の要素を「:」で区切って2次元配列にする↓
@array2 = map { [ split ':', $_ ] } @array1;

foreach ( @array1 ) {
push(@array2, [ split ':', $_ ]);
}
がおんなじ。

309 :nobodyさん:03/08/20 21:49 ID:Loi9JQvi
telnetで接続できるBBSをPerlで書こうと思っています。
現在、
http://x68000.startshop.co.jp/~68user/net/echo-3.html
のechoサーバを参考に作っているところなのですが、
いかにしてキー入力を取得するかで悩んでいます。

現在、標準入力からそのまま取得しているのですが
これでは、BSやDELが効きません。
#入力された文字列がそのまま表示されてしまうため
#パスワードの入力にも使えません。

sub lineinput {
my ($mes) = @_;

print CLIENT $mes;
my $line = <CLIENT>;

$line =~ s/\x0D?\x0A?$//;
return $line;
}

どなたか、このような場合の一行入力ルーチンを
ご存知の方はいらっしゃいませんか?

310 :nobodyさん:03/08/20 22:13 ID:???
>>309
参考になるかどうか分からんが。
http://search.cpan.org/author/AUTRIJUS/OurNet-BBS-1.65/

311 :nobodyさん:03/08/21 01:12 ID:???
>>306
とりあえず入力ルーチンを入れろ。
それと一回ファイルを削除して、復元しろ。わからないところ、間違っているところが表示される。

312 :nobodyさん:03/08/21 01:13 ID:???
#!/usr/bin/perl

# CGIヘッダの出力
print "Content-type: text/html\n\n";

while($HP1 > 0) and ($HP2 > 0){
srand1;
srand2;
}

# Player1
$HP1 = 400 - $kougeki1;
$KIK1 = 60;
$PAN1 = 20;
$DF1 = 10;

# Player2
$HP2 = 300 - $kougeki2;
$KIK2 = 100;
$PAN2 = 40;
$DF2 = 0;

# Player1
$kougeki1 = srand;

# Player2
$kougeki2 = srand2;


313 :nobodyさん:03/08/21 01:13 ID:???
srand;
if($mode == 1){
$offense = \%you;
$defense = \%my;
}elsif($mode == 2){
$offense = \%my;
$defense = \%you;
}
if( int(rand(2)) ){
#punch
$damage =
$offense->{'$PAN1'} - $defense->{'$DF2'};
if(!$rand = int(rand(5))){
#half
$damage = int($damage / 999);
}elsif($rand < 3){
#miss
$damage = "";
}
}else{
#kick
$damage =
$offense->{'$KIK1'} - $defense->{'$DF2'};
}

314 :nobodyさん:03/08/21 01:13 ID:???
srand2;
if($mode == 1){
$offense = \%you;
$defense = \%my;
}elsif($mode == 2){
$offense = \%my;
$defense = \%you;
}
if( int(rand(2)) ){
#punch
$damage =
$offense->{'$PAN2'} - $defense->{'$DF1'};
if(!$rand = int(rand(5))){
#half
$damage = int($damage / 999);
}elsif($rand < 3){
#miss
$damage = "";
}
}else{
#kick
$damage =
$offense->{'$KIK2'} - $defense->{'$DF1'};
}

315 :nobodyさん:03/08/21 01:14 ID:???
($damage < 0) and ($damage = 0);
$defense->{'HP1'} -= $damage;

($damage < 0) and ($damage = 0);
$defense->{'HP2'} -= $damage;

# HTMLの出力
print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\">\n";
print "<html>\n";
print "<head><title>対戦バトル</title></head>\n";
print "<body>
<p>Player1:体力は$HP1です</p>
<p>Player2:体力は$HP2です</p>
<p>Player1は<big>$kougeki1</big>のダメージを与えた。</p>
<p>Player1は<big>$kougeki1</big>のダメージを受けて混乱した。
<p>Player1は<big>$kougeki1</big>のダメージで野クソを食べ始めた。
<p>Player2は<big>>$kougeki2</big>のダメージを与えた。</p>
<p>Player2は<big>>$kougeki2</big>のダメージを受けて、道路で裸踊りを始めた。
<p>Player2は<big>>$kougeki2</big>のダメージで電車の中のブス女をレイプし始めた。</p></p></body>\n";
print "</html>";

316 :nobodyさん:03/08/21 01:15 ID:???
>>306

2行目に
open (IO,"+<$logfile");
5行目に
while (<IO>){
 if ($_ =~ /<>$ip/){
  @y2=split(/<>/,$_);
  if ($y2[6] ne $ip){
   push(@log,$_);
  }else{
   $y2[0] = 'All Clear (^-^)v';
   $y2[5] = 'All Clear (^-^)v';
   push(@log,"$y2[0]<>$y2[1]<>$y2[2]<>$y2[3]<>$y2[4]<>$y2[5]<>$y2[6]<>$y2[7]<>\n");
  }
 }else{
  push(@log,$_);
 }
}
を入れろ。

317 :nobodyさん:03/08/21 01:16 ID:???
      ____
     /∵∴∵∴\             彡川川川三三三ミ〜
    /∵∴∵∴∵∴\             川|川/  \|〜 プゥ〜ン
   /∴.-=・=-  -=・=-|           ‖|‖ ◎---◎|〜
   |∵∵/  | |  \|           川川‖    3  ヽ〜
   |∵ /    (・・)    |          川川    ∴)д(∴)〜
   |∵ |    ∈∋   |           川川      〜 /
    \|        /           川川‖    〜 /
      \____/            川川川川___/
             目障りだから失せろ
    ┏━━━━┓───────→┏━━━━━┓ 
    ┃ 塔   矢 ┃               ┃ Perlオタ  ┃ 
    ┗━━━━┛←───────┗━━━━━┛ 
     ↑ │    あまり関わりたくない   ↑  │
     │ │            .          │  │
     │ │実は馬鹿に    死んでほしい│  │
     │ │している。     くたばれ   │  │
     │ └──→ ┏━━━━┓───┘  │
     │.       ┃ 真  世 ┃          │
     └─────┗━━━━┛←────┘
     どうでもいい   ____    Perlオタは死ね!!
              /:::::::::::::::::::::::\   
             /::::::::::::::::::::::::::::::::::\
            /::::/ .ヽ:::::::::::::::::::::::::::::|
           │::ノ   ヽヽヽヽヽ ヽ |
            (6   -=・=-  -=・=-│
            │     .| |     |   
            |       (・・)     | 
             \    ∈∋   /
               \____/        

318 :nobodyさん:03/08/21 01:18 ID:???
  ふざけた質問してんじゃねーぞ!!このクソオタ野郎
  てめーのIP調べてやっからな!!
  ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       ∧_∧
      (・∀・ ) ≡≡≡3        シィィィイイッ!? ジィ゙ィ゙ィ゙ィ゙ィ゙ィ゙ィ゙ィ゙ィ゙ィ゙ッ゙!!?
   ⊇○⊆と  ) __ ≡≡≡3    ハギャァーーーーーッ!! ドメ゙デェ゙ェ゙ェ゙ッ゙!!
   ,ー//(⌒( ノニ二,ーヽ、 ̄'ヽ.,, (´⌒;;                 ,;(´(´⌒;"'
  ( (i(@ij)~ロ(_ノ国((=(@ij)≡≡(´⌒ー-、.,    ,∧,λ∩,,,,,≡≡≡(´⌒;(´⌒;;"≡≡3
  ヽ.,_,.ノ,; .・ , ; ': ヽ.,_,.ノ,.;ツ (´;⌒(´⌒;;' ~ヽ⊂》(#>;0<)← >>303;;;;;;;;つ,.;ツ:(´(´⌒;;,'≡≡≡≡3
  ブロロロロロロ・・・    ゛ ' '"; '; ・        ゙゙゙'゛""゙゙゙''; (´⌒;,(´,(´⌒;;'"
                              ズザザザザザザザザザザザザザーーーーッ

    マターリ厨の偽モナーや偽モララーは一緒に制裁だからな
     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
               ∧_∧
              (・∀・ ) ≡≡≡3              ヤメロー!
           ⊇○⊆と  ) __ ≡≡≡3           な、何でオレまでーーーーーっ!!
           ,ー//(⌒( ノニ二,ーヽ、 ̄'ヽ.,, (´⌒;;                 ,;(´(´⌒;"'
          ( (i(@ij)~ロ(_ノ国((=(@ij)≡≡(´⌒ー-、.,    ,∧_λ∩,,,,,≡≡≡(´⌒;(´⌒;;"≡≡3
          ヽ.,_,.ノ,; .・ , ; ': ヽ.,_,.ノ,.;ツ (´;⌒(´⌒;;' ~ヽと》(# >∀・);;;;;;;;つ,.;ツ:(´(´⌒;;,'≡≡≡≡3
          ブロロロロロロ・・・    ゛ ' '"; '; ・        ゙゙゙'゛""゙゙゙''; (´⌒;,(´,(´⌒;;'"
                                    ズザザザザザザザザザザザザザーーーーッ


319 :nobodyさん:03/08/21 03:26 ID:???
中途半端に荒しやがって。
どうせならどんと荒してアク禁になれよな。

320 :nobodyさん:03/08/21 12:36 ID:DAq1ln5w
#=============================================================================
# クッキー書き込み
# &cookie_regist(クッキー名, データ, 日数);
# ・クッキー名 ⇒ クッキーの名称、半角英数字
# ・データ ⇒ キー!値,キー!値,キー!値 の書式で整えられたデータ
# ・日数 ⇒ 保存しておく日数(ただし、sessionと入力すると、
#  セッションクッキーとなる(ブラウザを閉じたらクッキーは削除される)
# ★注!:キー値に「!と=と;は使わないこと」
#例文:
#&cookie_regist("session","sessionid!246",1/24);
#-----------------------------------------------------------------------------
sub cookie_regist(){
local($cookiename, $cookievalue, $cookiedate) = @_;


($sec, $min, $hour, $mday, $mon, $year, $wday) = gmtime(time + 60*60*24* $cookiedate );
@mons = ('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
$date_gmt = sprintf("%s, %02d\-%s\-%04d %02d:%02d:%02d GMT",
$week[$wday], $mday, $mons[$mon], $year+1900, $hour, $min, $sec);
if ($cookiedate ne "session"){
print "Set-Cookie: $cookiename=$cookievalue; expires=$date_gmt\n";
} else{
print "Set-Cookie: $cookiename=$cookievalue\n";
}
}
という関数をつくったのですが、(長いので次のレスに続きます)

321 :320:03/08/21 12:38 ID:DAq1ln5w
すいません、タブを全角スペースにするの忘れたので見づらいので、書き直します。
#=============================================================================
# クッキー書き込み
# &cookie_regist(クッキー名, データ, 日数);
# ・クッキー名 ⇒ クッキーの名称、半角英数字
# ・データ ⇒ キー!値,キー!値,キー!値 の書式で整えられたデータ
# ・日数 ⇒ 保存しておく日数(ただし、sessionと入力すると、
#  セッションクッキーとなる(ブラウザを閉じたらクッキーは削除される)
# ★注!:キー値に「!と=と;は使わないこと」
#例文:
#&cookie_regist("session","sessionid!246",1/24);
#-----------------------------------------------------------------------------
sub cookie_regist(){
    local($cookiename, $cookievalue, $cookiedate) = @_;
    

     ($sec, $min, $hour, $mday, $mon, $year, $wday) = gmtime(time + 60*60*24* $cookiedate );
    @mons = ('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
    $date_gmt = sprintf("%s, %02d\-%s\-%04d %02d:%02d:%02d GMT",
     $week[$wday], $mday, $mons[$mon], $year+1900, $hour, $min, $sec);
    if ($cookiedate ne "session"){
        print "Set-Cookie: $cookiename=$cookievalue; expires=$date_gmt\n";
    } else{
        print "Set-Cookie: $cookiename=$cookievalue\n";
    }
}
という関数をつくったのですが、(長いので次のレスに続きます)

322 :320:03/08/21 12:41 ID:DAq1ln5w
&cookie_regist("hoge_session","hoge_sessionid!".$in{cust_code},180);
みたいにしてクッキーをセットすると、
ネスケでは、180日有効なクッキーがセットされるのですが、
IEだと、セッションクッキー(ブラウザを閉じると削除されるクッキー)に
なってしまいます。

どこがおかしいのでしょうか?


323 :320:03/08/21 13:29 ID:???
すいません、自己レス。いつのまにか、
@mons = ('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
のあとの
@week = ('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat');
を消してしまっていたことが原因でした。

しかし、ネスケでexpireを強引に認識してくれて、IEだと無視されるとは・・・
(逆なら納得いくんだが)

ともかく解決しました。すみません。

324 :nobodyさん:03/08/21 15:29 ID:pPohBqhp
PHPの質問で数値の表示方法についての質問なんですが、数値の計算で
例えば
10×1.05 をやると 10.5
になるのですがこれの小数点以下を切り捨てたいのですが、どうすれ
ば良 いのでしょう。number_format関数を使えば小数点以下の修正が
行なえるというのは知っているのですが、number_format関数を使うと
1000などの数値の時、1,000となり","(カンマ)が表示されてしまい、数
値として認識しなくなってしまいます。
この計算の後にもさらに計算をしたいので、数値として認識させなけれ
ばならないので、こまっています。
どうぞご指導をよろしくおねがいします。


325 :nobodyさん:03/08/21 15:32 ID:???
>>324
ここPerlだしPHPよく知らんけど、

$formated_number と $number と別にすればいいんでないの?

326 :nobodyさん:03/08/21 15:34 ID:???
なんでPHPの質問板でしないの?
floatだっけか忘れた。

327 :nobodyさん:03/08/21 15:42 ID:pPohBqhp
ごめんなさい。間違えました!
※ちなみに$numberと$formated_numberを使ってみたところfatal error
になっちゃいました。
すみません。迷惑かけました。ありがとうございました。

328 :nobodyさん:03/08/21 17:56 ID:DAq1ln5w
"私は39歳のオヤジで2人の子供がいます。"
という文字列に対して、全角数字を半角数字に置換したいのですが、
どうすればいいのでしょうか?
(文字列も、スクリプト自体も、文字コードはEUCです)

329 :nobodyさん:04/03/26 19:55 ID:???
タイムスリップ記念

87 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)