Perl コーディング初心者質問コーナー Part26
レス数が900を超えています。1000を超えると表示できなくなるよ。
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
0838nobodyさん
03/08/10 23:00ID:???http://perl.infoware.ne.jp/documents/perlboot.ja.html
>>830
$time = sprintf '%02d 時間 %02d 分', $time, ($time * 60) % 60, $time;
0839nobodyさん
03/08/10 23:18ID:64afxySW一つのファイルで、1500 行
を超えてしまいました。
行数が多いと何か不都合は起きますでしょうか?
お教え下さい。
0840nobodyさん
03/08/10 23:27ID:STOMuStSprint qq|<a href="hoge">fuga</a>|;
ってやればコードが見やすいのに、
いちいち
print "<a href=\"hoge\">figa></a>";
ってやってる人が多いんですか?
qqのほうが、コーディングもよけいなことあんまり考えなくて、はやくすむと思うんだけど
0841nobodyさん
03/08/10 23:30ID:???それを見やすいと思うのはPerlユーザーだけ。
俺は使い分けてるけどね。
0842nobodyさん
03/08/10 23:30ID:???最後の$time要らん。
>>839
そのスクリプトを保守する人間が困らないのなら別に問題無し。
>>840
最初に覚えた方法が一番分かり易いと思い込んでいる人は多い。
もちろんその方法しか知らない人も多い。
0843840
03/08/10 23:41ID:???なるほどねー。
自分最初にPerlおぼえて、
そのあとちょっとPHPかじって、
Javaおぼえようかなーて思ってる程度だからなー。
0845nobodyさん
03/08/11 00:55ID:???$time =<>;
my(@time_temp) = split(/\./, $time);
chomp($time);
if(length($time_temp[1]) eq "1"){$time_temp[1] = $time_temp[1] * 10;}
time = sprintf '%02d 時間 %02d 分', $time, ($time * 60) % 60, $time;
print "<a href=\"hoge\">figa></a>";
$time_temp[1] = int(60 * $time_temp[1] / 100);
print "$time_temp[0]時間$time_temp[1]分\n";
0846あぼーん
NGNG0847あぼーん
NGNG0848nobodyさん
03/08/11 00:59ID:???# 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;
0849nobodyさん
03/08/11 00:59ID:???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'};
}
0850nobodyさん
03/08/11 01:00ID:???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;
0851nobodyさん
03/08/11 01:02ID:???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>";
0853nobodyさん
03/08/11 10:23ID:???0855nobodyさん
03/08/11 12:03ID:vd5Ibrol∧_∧∩ /
( ´∀`)/<真珠のPerlと何が違うんですか!?
_ / / / \___________________
\⊂ノ ̄ ̄ ̄ ̄\
||\ \
||\|| ̄ ̄ ̄ ̄ ̄||
|| || ̄ ̄ ̄ ̄ ̄||
.|| ||
0856nobodyさん
03/08/11 12:04ID:???/"""''/ーナ-t----|
. / ,.‐ ⌒ /ヘ
{入|(・) (・) ||||||| / ̄ ̄ ̄ ̄ ̄ ̄ ̄
|⊂⌒◯-------9) < まだ、動かないぜ!ベイビー!!
| |||||||||_ | \_______
\ ヘ_/ \ / ̄`\、
. \、__ i⌒i/, -'"~ `ヽ、
,.‐'´ i--i \
`〈ヽ, -'"~T ヽ、 , -'" ~ `ヽ、
/ ( ̄ T iヽ、__ \.
/ ( ̄T | `ヽ、 }
く  ̄ `ヽ、/__ /
0857nobodyさん
03/08/11 12:07ID:???|| ($damage < 0) and ($damage = 0);
|| $defense->{'HP1'} -= $damage;はダメージ
|| ∧_∧ 。
|| ( ^^ )/
 ̄ ̄ ̄ ̄ ̄ ̄ ( つ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
/  ̄ ̄ ̄ ./| lヽ──────────────
| ̄ ̄ ̄ ̄| | | ダメージを受けると、糞をもらします
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|____|/ |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∧ ∧ ∧,,∧ ∧ ∧
(・,, ∧▲ ミ ∧ ∧ ( ∧ ∧
〜(_( ∧ ∧_( ∧ ∧_ミ・д・∧ ∧
@(_(,,・∀・)@ ( *)〜ミ_ ( ,,)
@(___ノ 〜(___ノ 〜(___ノ
0858nobodyさん
03/08/11 13:19ID:???でアクセスして表示しますよね?
これってこの全てのディレクトリの下にindex.htmlか.cgiかなにかを置いてあって、
それを表示してるってことですよね?
でも
鯖/カテゴリ/.../dat/
これでアクセスしたときと、
鯖/カテゴリ/.../dat/index.htmlでアクセスしたときと、
表示が微妙に違うんです。
どういう仕組みで表示させてるんでしょうか?
0860nobodyさん
03/08/11 13:56ID:???http://pc2.2ch.net/test/read.cgi?bbs=php&key=1059043704
http://pc2.2ch.net/test/read.cgi/php/1059043704/
0861nobodyさん
03/08/11 14:06ID:???0862nobodyさん
03/08/11 14:08ID:???あ、なるほど本来(?)なら
bbs=php&key=1059043704
と引数を渡すところを、
PATH_INFOってのを使って、
/php/1059043704/
こういう形で引数を渡すように設定できる
そういうことですね。勉強になりました。
0864nobodyさん
03/08/11 18:26ID:???改行だけなら1〜2バイトだし。
行数よりもファイルサイズが重要でないかい?
0865nobodyさん
03/08/11 18:41ID:???0866nobodyさん
03/08/11 19:59ID:???0867nobodyさん
03/08/11 20:01ID:???0868863
03/08/11 20:02ID:???サイズは623KBだ。
サクサク。
>>854
はマシンのスペックがよっぽどしょぼいか、
しょっぱいスクリプトの書き方してるんじゃないかな。
0869nobodyさん
03/08/11 20:04ID:???ってことは、10000行の改行だけのスクリプトってことだな
0870nobodyさん
03/08/11 20:04ID:???KBとBの単位をまちごた。
0871nobodyさん
03/08/11 21:26ID:???で素朴な疑問ですがやはりEUCでないとどこかで不都合起きたりしますか?
今のところ何も起きてないけど気になって。
0872nobodyさん
03/08/11 21:34ID:???さらに
perl5.8を使って、
use Encode;
でさらに幸せになれます。
0873nobodyさん
03/08/12 04:00ID:???パソコンの環境によっては500行以下にしなさいってことだ。
0874あぼーん
NGNG0875あぼーん
NGNG0876あぼーん
NGNG0877あぼーん
NGNG0878あぼーん
NGNG0879あぼーん
NGNG0880あぼーん
NGNG0881あぼーん
NGNG0882あぼーん
NGNG0883あぼーん
NGNG0884nobodyさん
03/08/12 04:50ID:???または博物館行きのスペックのマシンでも使ってんのか?
0885nobodyさん
03/08/12 04:53ID:???0887nobodyさん
03/08/12 05:17ID:???つか、おめぇAA貼ってる馬鹿だろ。みんな放置汁
0889nobodyさん
03/08/12 05:27ID:???50行でうごかねーって騒いでるのは
わざと重くしてるのか?
0890nobodyさん
03/08/12 10:40ID:???しーぱん?しーぴーえーえぬ?
0891nobodyさん
03/08/12 10:50ID:???0892nobodyさん
03/08/12 10:55ID:???0893nobodyさん
03/08/12 11:00ID:???0895あぼーん
NGNG0896あぼーん
NGNG0897あぼーん
NGNG0898あぼーん
NGNG0899あぼーん
NGNG0900あぼーん
NGNG0901あぼーん
NGNG0902あぼーん
NGNG0903nobodyさん
03/08/12 11:55ID:???0904nobodyさん
03/08/12 12:02ID:???0906nobodyさん
03/08/12 14:43ID:???それ用の簡単なプログラムを書いてみたんだが500InternalServerErrorになる。ソースをうpするのでご教授願いたい。
ttp://amici.dip.jp/~takuho/cgi/hakoniwa_sakujo.txt
KENTWEB配布の文法チェッカーでは異常なしらしいんだが…。
0907906
03/08/12 14:44ID:???正しくは、
ttp://nd22.abz.jp/cgi/hakoniwa_sakujo.txt
0911nobodyさん
03/08/12 15:09ID:Ehp7RR1Qあと、>>908の言うとおりにスクリプトを変更して走らせたら、なんかDLしますか?みたいなウィンドウが出てきたので、txt/plainをtxt/htmlにしてみたら一応走った。
$sakujp1から$sakujp9までを表示させてみたら全部0 (´Д`;)マジカヨ
0912nobodyさん
03/08/12 15:13ID:???0915nobodyさん
03/08/12 15:22ID:???空じゃないといけないのかw
スクリプト書き直します
>>914
ああ、こりゃまた失敬。
ちゃんとtextって書いてますよ。
0916nobodyさん
03/08/12 16:29ID:dyQ6VIzM各ページで内容を統一したいのですが、以下の方法では
エラーとなってしまいました。
どなたかご教授お願いします。
# main.cgi
require "inc.pl";
・・・・
# inc.pl
my $title = "welcome";
・・・・
よろしくです。
0917nobodyさん
03/08/12 16:29ID:???0918nobodyさん
03/08/12 16:44ID:RiEGcXgNa => "hage",
b => {
c => "$hage{a} /hage",
},
);
こんな感じで$hage{b}{c}で、$hage{a}を使いたいけど、
出来ませんよね?何かいい方法有りませんか?
0919nobodyさん
03/08/12 16:47ID:???なんでつけてんの
0922nobodyさん
03/08/12 16:56ID:???my $zura = "hage";
my %hage = (
a => $zura,
b => {
c => "$zura /hage",
},
);
0923916
03/08/12 17:07ID:???根本的に間違えていました。
まず、パッケージ宣言をしていませんでした。
あと、>>920さんのいうとおり、パッケージとして読み込む
内容に対してmyにしていました。
0924918
03/08/12 17:10ID:???実はあんまいみ分かって使ってないかも(汗
サブルーチンの中でその間数内でしか使わない変数は、
myを付けるようにしてる。あと、use strict;してると、
my付けなきゃ怒られるから、、、
>>921-922
一つにまとめた方がすっきりしていいかなーって思いましてね。
やっぱ無理ですかね?
0927923
03/08/12 19:10ID:dyQ6VIzMrequireで呼び出す定数の記載されたplファイルが、
ブラウザから丸見えになってしまいます・・・
(見られたくない内容が記載されています)
属性を600にしたら動かないようですし。
ブラウザから参照できないファイルにできないものですか?
よろしくお願いします。
0928nobodyさん
03/08/12 19:18ID:???0929923
03/08/12 19:23ID:dyQ6VIzMちなみに拡張子をcgiにしてみると実現できました。
0931nobodyさん
03/08/12 19:42ID:???0934nobodyさん
03/08/12 20:31ID:???それはいいね。
運用情報をちょっと見てきたけど、コピペや広告がビシバシと
アク禁になっててワラタ。
今後も続いたらそっちに回そう。
0935nobodyさん
03/08/12 20:50ID:y42wbWjQmy $mail = join(/ /, @{$ref_mail});
とかくと、成功したり失敗したりします。
エラーが出た場合のエラー内容は下記のとおりです。
Can't use an undefined value as --.cgi reference
これについて調べてみたのですが、どうも理解が
できません。
定義するとエラーが出てしまいますし、初心者の私に
どうか教えていただければ幸いです。
レス数が900を超えています。1000を超えると表示できなくなるよ。