Perl コーディング初心者質問コーナー Part26
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
03/07/24 19:48ID:???【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
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
0685nobodyさん
03/08/08 17:11ID:???#! /usr/local/bin/perl
print 'Content-Type: text/html',"\n\n";
print '<html>';
print $];
print '</html>';
ってな感じのCGIを設置してアクセスする。
0686nobodyさん
03/08/08 17:14ID:???>685
ありがとうございます。
5.00503だとわかりすっきりしました。
0687674
03/08/08 17:17ID:???0689688
03/08/08 17:20ID:???>>683
foreach (@{$Japan{tokyo}})
括弧ひとつ余計につけないとダメらしい
0690nobodyさん
03/08/08 17:33ID:RBuH2Puu# CGIヘッダの出力
print "Content-type: text/html\n\n";
# Player1
$HP = 400;
$KIK = 60;
$PAN = 20;
$DF = 10;
# Player2
$HP = 300;
$KIK = 100;
$PAN = 40;
$DF = 0;
# Player1
$kougeki1 = srand;
# Player2
$kougeki2 = srand;
srand;
if($mode == 1){
$offense = \%you;
$defense = \%my;
}elsif($mode == 2){
$offense = \%my;
$defense = \%you;
}
0691nobodyさん
03/08/08 17:33ID:RBuH2Puu#punch
$damage =
$offense->{'$PAN'} - $defense->{'$DF'};
if(!$rand = int(rand(5))){
#half
$damage = int($damage / 999);
}elsif($rand < 3){
#miss
$damage = "";
}
}else{
#kick
$damage =
$offense->{'$KIK'} - $defense->{'$DF'};
}
($damage < 0) and ($damage = 0);
$defense->{'HP'} -= $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>Player2は<big>>$kougeki2</big>のダメージを与えた。</p></body>\n";
print "</html>";
0692nobodyさん
03/08/08 17:34ID:RBuH2Puu考えるか
0693nobodyさん
03/08/08 17:37ID:???わざわざ貼らんでよろしい。
0694nobodyさん
03/08/08 17:39ID:???0695nobodyさん
03/08/08 17:57ID:RBuH2Puu0696nobodyさん
03/08/08 18:04ID:???0698nobodyさん
03/08/08 20:00ID:???KIKって(;´Д`)
0700nobodyさん
03/08/08 20:13ID:???0701nobodyさん
03/08/08 20:25ID:???0702nobodyさん
03/08/08 20:28ID:???$defense->{'HP'} -= $damage;
0703nobodyさん
03/08/08 20:35ID:???例えば$hogeは$fooか$barか$baz以外の値であればエラーとしたくて
if ($hoge ne ($foo or $bar or $baz)){&error(不正な値が混じってます);}
のように書いたりしたのですがダメでした。
0704nobodyさん
03/08/08 20:39ID:???0706nobodyさん
03/08/09 02:34ID:9s2Ca0tO$HP = 400;
$KIK = 60;
$PAN = 20;
$DF = 10;
# Player2
$HP = 300;
$KIK = 100;
$PAN = 40;
$DF = 0;
# Player1
$kougeki1 = srand;
# Player2
$kougeki2 = srand;
0707nobodyさん
03/08/09 02:34ID:9s2Ca0tOif($mode == 1){
$offense = \%you;
$defense = \%my;
}elsif($mode == 2){
$offense = \%my;
$defense = \%you;
}
if( int(rand(2)) ){
#punch
$damage =
$offense->{'$PAN'} - $defense->{'$DF'};
if(!$rand = int(rand(5))){
#half
$damage = int($damage / 999);
}elsif($rand < 3){
#miss
$damage = "";
}
}else{
#kick
$damage =
$offense->{'$KIK'} - $defense->{'$DF'};
}
($damage < 0) and ($damage = 0);
$defense->{'HP'} -= $damage;
0708nobodyさん
03/08/09 02:34ID:9s2Ca0tOprint "<!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>Player2は<big>>$kougeki2</big>のダメージを与えた。</p></body>\n";
print "</html>";
0709あぼーん
NGNG0710あぼーん
NGNG0711あぼーん
NGNG0712nobodyさん
03/08/09 02:40ID:???0713あぼーん
NGNG0714あぼーん
NGNG0715nobodyさん
03/08/09 02:48ID:???$defense->{'HP'} -= $damage;
0717あぼーん
NGNG0719nobodyさん
03/08/09 04:21ID:???教えたがりというか、得意になりたがるというか。
感謝のレスをもらって満足したいんだろうなぁ。
0720nobodyさん
03/08/09 04:37ID:???荒らしとしても最低の部類に入る。
あ、>>715と>>718見て気付いた。ここWebProgだったか。ならいいや。
0721nobodyさん
03/08/09 05:13ID:???馬鹿にして満足しているようだが、つまらんな。
いなくても誰も困らないからム板に引っ込んでいれば?
ム板住人にしては最低の部類に入るけどな。
0723nobodyさん
03/08/09 05:20ID:9s2Ca0tOおれは荒らしじゃねーよ!ヴォケ!!
相手にすんなよ、とか言ってる馬鹿がいるから荒れるんだよ
もとは、てめーみたいな無脳がいるから、住みつくんだっつーの!!
無脳を相手にするのは一番、気持ちいいからな!!馬鹿だから!!
0724nobodyさん
03/08/09 05:40ID:9s2Ca0tO# 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;
0725nobodyさん
03/08/09 05:40ID:9s2Ca0tOif($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'};
}
0726nobodyさん
03/08/09 05:40ID:9s2Ca0tOif($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;
0727nobodyさん
03/08/09 05:41ID:9s2Ca0tOprint "<!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>Player2は<big>>$kougeki2</big>のダメージを与えた。</p></body>\n";
print "</html>";
0728nobodyさん
03/08/09 05:42ID:9s2Ca0tO($damage < 0) and ($damage = 0);
$defense->{'HP1'} -= $damage
がいまいち理解できんよ。
0729nobodyさん
03/08/09 06:25ID:???0731nobodyさん
03/08/09 07:18ID:???それに、こういうのは名無し相手には強気になれても、システム側の人間が動き出せば
態度が一変するよ。ほんと面白いぐらいに。
0732nobodyさん
03/08/09 07:20ID:???0733nobodyさん
03/08/09 07:40ID:???0734659
03/08/09 08:42ID:???基本的な文法と、ハッシュとリファレンスを覚えなよ(659のヤツを組み込みたいなら)。
ここで質問しても迷惑だし、無意味だぞ。
ただ目立ちたいだけならさっさとどっか行きな。
0735nobodyさん
03/08/09 09:58ID:???>($damage < 0) and ($damage = 0);
>$defense->{'HP1'} -= $damage
>がいまいち理解できんよ。
ほかもまったく理解できてないだろ
0736nobodyさん
03/08/09 10:34ID:???幼女板にもおながいします。
◆スクリプト&コピペ(乱立)荒らし報告スレ7
http://qb.2ch.net/test/read.cgi/operate/1060158648/l50
>>735
> >($damage < 0) and ($damage = 0);
and しなくてもいいよな(w
0737同一人物による大量の書き込み
03/08/09 10:50ID:???560,563,565-568,572,574,576,578,592,593,611,613
03/08/08(Fri) ID:RBuH2Puu
620,630,636-642,644,646,648,650-651,654-655,657,676-678,680-682,690-692,695
03/08/09(Sat) ID:9s2Ca0tO
706-711,713-714,723-728
スレッドの約6%を消費。
0738nobodyさん
03/08/09 11:24ID:???0739nobodyさん
03/08/09 12:33ID:???&error('不正な値が混じってます') unless grep{$hoge eq $_}($foo,$bar,$baz);
とか
0740703
03/08/09 13:02ID:???$hogeと$fooが一致しないか(or)$hogeと$bar一致しないか(or)とかいう風に
考えてしまいました…。
>739
どもです。
そちらの方がすっきりしてますね。
0741nobodyさん
03/08/09 13:03ID:aJfrmQrg0742あぼーん
NGNG0743nobodyさん
03/08/09 14:05ID:9s2Ca0tOというより、動かねーよ!
0744あぼーん
NGNG0745あぼーん
NGNG0746あぼーん
NGNG0747あぼーん
NGNG0748あぼーん
NGNG0749あぼーん
NGNG0750あぼーん
NGNG0751nobodyさん
03/08/09 14:59ID:???0754nobodyさん
03/08/09 15:32ID:???@array = ($foo,$bar,$baz);
&error('不正な値が混じってます') unless grep{$hoge eq $_}@array;
すっきりしてる、っていうか上みたいな使い方ができるので、
比較対照が可変の場合に楽。
0755nobodyさん
03/08/09 18:46ID:9s2Ca0tO# 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;
0756nobodyさん
03/08/09 18:47ID:9s2Ca0tOif($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'};
}
0757nobodyさん
03/08/09 18:47ID:9s2Ca0tOif($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;
0758nobodyさん
03/08/09 18:47ID:9s2Ca0tOprint "<!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>Player2は<big>>$kougeki2</big>のダメージを与えた。</p></body>\n";
print "</html>";
0759あぼーん
NGNG0760あぼーん
NGNG0761あぼーん
NGNG0762nobodyさん
03/08/09 18:52ID:???killかrmかなんだかしてやってほしい
0763nobodyさん
03/08/09 18:54ID:aJfrmQrg0766nobodyさん
03/08/09 19:21ID:???0767nobodyさん
03/08/09 20:55ID:???0768nobodyさん
03/08/09 21:13ID:???http://qb.2ch.net/test/read.cgi/operate/1060158648/585
こっちにもあげときました。
0769momo
03/08/09 21:29ID:jpYU10pthttp://***.com/~sub/みたいなチルダが入るとバグってしまうんです…
以下にそのまま書いたのでどこを直せばいいのか教えて頂けないでしょうか?
よろしくお願いいたします。
#!/usr/local/bin/perl
print qq|content-type: text/html\n\n
<HTML>
<HEAD>
<TITLE>JUMP</TITLE>
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
</HEAD>
<BODY bgcolor="#FFFFFF" text="#000000">
<B><A href=$ARGV[0]>$ARGV[0]</A></B>
<HR>
次のサイトにジャンプしようとしています。
</BODY>
</HTML>|;
0770nobodyさん
03/08/09 21:41ID:???あと、METAタグを使う理由がわからん…
0771nobodyさん
03/08/09 21:43ID:???0772nobodyさん
03/08/09 21:49ID:???http://pc2.2ch.net/test/read.cgi/php/1059878966/21
0774nobodyさん
03/08/09 22:47ID:???0775sage
03/08/09 22:47ID:jpYU10pt0776nobodyさん
03/08/09 22:49ID:GqH0THDn}elsif(a){
}elsif(b){
}elsif(b){
と表示するのと、
}elsif((a)||
(b)||
(c))){
と表示するのとでは効果は同じですよね?
上の方が分かりやすいから私は上を使っているんですが、
何かデメリットはあるんでしょうか?
0778nobodyさん
03/08/09 23:13ID:???俺なら下を使うね。
0779momo
03/08/09 23:18ID:???http://hogehoge.com/jump.cgi?http://yahoo.com/~sub/
のリンクだと
http://yahoo.com/\~sub/となってしまい、うまくhttp://yahoo.com/~sub/に
飛ぶことが出来ないんです
0781nobodyさん
03/08/09 23:41ID:???失礼ですが貴方は hogehoge.comとyahoo.comのオーナー様でしょうか?
公に使用者が開示されているドメインネームを不当にドキュメント等に用いるマナー違反者が
増えていますので。 念のため確認です。
0782nobodyさん
03/08/09 23:51ID:???#! /usr/local/bin/perl
print qq|Content-type: text/html; charset=Shift_JIS
<HTML>
<HEAD>
<TITLE>JUMP</TITLE>
</HEAD>
<BODY bgcolor="#FFFFFF" text="#000000">
<B><A href=$ENV{'QUERY_STRING'}>$ENV{'QUERY_STRING'}</A></B>
<HR>
次のサイトにジャンプしようとしています。
</BODY>
</HTML>|;
exit;
これでいいかね
0783あぼーん
NGNG■ このスレッドは過去ログ倉庫に格納されています