Perl コーディング初心者質問コーナー Part26
レス数が950を超えています。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
0875あぼーん
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
これについて調べてみたのですが、どうも理解が
できません。
定義するとエラーが出てしまいますし、初心者の私に
どうか教えていただければ幸いです。
0936nobodyさん
03/08/12 20:57ID:???男は「(都の人のする)糞スレというものをひとつ立ててみよう」と思った。
男の女房が「(天さかる鄙にすむわたしのような教養のない女でもわかるが)都の人はそんなことをしない(と思う)」
と諌めたが、男はきかない。
「(釈迦入滅以来うだつのあがらない自分という男にほとほと愛想が尽きたが)
ここで糞スレを立てれば(都の人のように)頓知がきいていると世の賞賛を受けるだろう」
と糞スレをたてた。
はたして翌日、>2以降、罵倒の嵐だった。
>1も無駄なことをするものだなあと(何故か判らぬが突然出てくる)横川の僧都(そうず)は嘆いた
0939nobodyさん
03/08/12 22:35ID:???sub htmlspecialchars{
#PHPの同名関数と同じ動きをします。
my ($letter) = $_[0];
$letter =~ s/&/&/g;
$letter =~ s/"/"/g;
$letter =~ s/'/?/g;
$letter =~ s/</</g;
$letter =~ s/>/>/g;
return $letter;
}
foreach $key (keys %in){
&jcode::convert(\$in{$key}, "sjis");
print qq|<input type="hidden" name="$key" value="|. &htmlspecialchars(\$in{$key}) .qq|">\n|;
}
<input type="hidden" name="country" value="SCALAR(0x827cdbc)">
<input type="hidden" name="gender" value="SCALAR(0x827cd2c)">
となってしまうのですが、どこがいけないのでしょうか・・・?
0940nobodyさん
03/08/12 22:43ID:???乙。
あぼーん<>あぼーん<>あぼーん<>あぼーん<>あぼーん<>
を追加加工は出来なかったのね(w
>>939
リファレンスで渡してるやん。。。
0941nobodyさん
03/08/12 23:00ID:???# 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 = sentaku;
$kougeki1 = $KIK2 = 100;
$PAN2 = 40;
# Player2
$kougeki2 = $KIK2 = 100;
$PAN2 = 40;
$DF2 = 0;
0942nobodyさん
03/08/12 23:00ID:???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'};
}
0943nobodyさん
03/08/12 23:07ID:???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;
0944nobodyさん
03/08/12 23:08ID:???$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>$kik1</big>のダメージを受けて混乱した。
<p>mona-は<big>$panti1</big>のダメージで野原でクソをし始めた。
<p>Player2は<big>>$kougeki2</big>のダメージを与えた。</p>
<p>Player2は<big>>$kik2</big>のダメージを受けて裸踊りを始めた。
<p>Player2は<big>>$pantti2</big>のダメージで光浦なみの女にレイプし始めた。</p></p></body>\n";
print "</html>";
0945nobodyさん
03/08/12 23:09ID:???それはその下のファイルを使うな、という意味です。
そのファイルは使えないので、そのファイルを全部削除して、
1から書き直すことをすすめます。
0946nobodyさん
03/08/12 23:46ID:???while (@test){
print\n;
}
とかやってみたのですがPCごと固まってしまいました…。
あとハッシュの中身を例えば
キー:値
のような形のリストとして出力するような方法も知りたいです。
#キーは不定
0948nobodyさん
03/08/13 00:11ID:0XDiwwzHprint $key." = ".$key{$key}."\n";
}
0949nobodyさん
03/08/13 00:20ID:???間違ってるぞ。
foreach $key(keys %HASH){
print "$key=$HASH{$key}\n";
}
0950nobodyさん
03/08/13 00:23ID:???print "$k:$v", "\n";
}
0952nobodyさん
03/08/13 00:25ID:???あるいは
while ( @test ) {
pop shift @test."\n";
}
>>946
あるいは
while ( ($key, $val) = each %HASH ) {
print $key." = ".$val."\n";
}
0954nobodyさん
03/08/13 00:26ID:0XDiwwzHまちがってた。
thxでごんす。
0955946
03/08/13 00:28ID:???whileとforeachの違いがイマイチわかりづらいですが
ラクダ本でも見てゆっくり勉強する事にします。
ハッシュの方はKeys関数のところみたら見事に載ってました。
わざわざすみませんでした…。
0956952
03/08/13 00:29ID:???>>945
あるいは
while ( @test ) {
print shift @test;
print "\n";
}
0958nobodyさん
03/08/13 10:45ID:???while (<>) {
print $_ . "\n";
}
のつもりで書いたのか。それならば。
while (shift @test) {
print $_ . "\n";
}
0960nobodyさん
03/08/13 16:15ID:???KENTさんのWeb Patioを使っています。
regist.cgiにおいて、
「初心者」という文字列を含む名前をエラーではじきたいのですが、
どうすればいいでしょうか?
一応、「初心者」であればエラーを返すようにしています。
if ($i_nam eq "初心者") { &error("任意の名前でお願いします"); }
この場合だと「PC初心者」をはじくことができません。
正規表現を使わなければいけないというのはわかっているのですが、
if ($i_nam =~ /初心者/)
ではダメなんでしょうか?
よろしくお願いします。
0962nobodyさん
03/08/13 16:38ID:???この場合、正規表現は使わない方が低コスト。
全部EUC-JPかUTF-8で扱っているとして
if (index($i_nam, '初心者') >= 0) {
&error("任意の名前でお願いします");
}
0963nobodyさん
03/08/13 16:40ID:???親からも子からも見える変数というのは、そのままでは実現できないのでしょうか?
小難しいのでビデオ予約に例えますが、
>親はユーザとsocketで通信をして、予約リストの追加削除修正を行い、
>子は時計を監視しつつ、時間になったら録画をスタートさせる
この"予約リスト"を親子で共有したいのです。
0964nobodyさん
03/08/13 16:43ID:VxpLVgAp初心者ははじくことができません。
そんな初歩的な質問は板違いです。どこか行ってください。邪魔です。
WEB板にいって、二度と来ないでください。
0965nobodyさん
03/08/13 16:45ID:???できません。共有はできません。どちらかあきらめてください。
あなたも欲ばりですね。
そんな初歩的な質問、こんなところでしないでください。どこか行ってください。
0966nobodyさん
03/08/13 16:46ID:???# 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;
0967nobodyさん
03/08/13 16:46ID:???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'};
}
0968nobodyさん
03/08/13 16:46ID:???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;
0970nobodyさん
03/08/13 16:47ID:???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>";
0971nobodyさん
03/08/13 16:48ID:???< >
< 動カンカッタ>>720-736ーーーーーーーーー!! >
< >
∨∨∨∨∨∨∨∨∨∨∨\ /∨∨∨∨∨∨∨∨∨∨∨
/:|. | | /:|
/ .:::| ∨ / :::|
| ...:::::| / ::::|
i  ̄ ̄⌒゙゙^――/ ::::::::|
/_,,___ . _,,,,__,_ :::::::::::\
/ ゙^\ヽ.. , /゙ ¨\,.-z ::::::::::\
「 ● | 》 l| ● ゙》 ミ.. .::::::\
/i,. .,ノ .l| 《 ..|´_ilト ::::::::::\
/ \___,,,,,_/ .'″ ^=u,,,,_ v/.. :::::::::::::l!
|  ̄ ,,、 i し./::::::::.}
| / ,,____ _,/ ̄ \ \ ノ ( ::::::::::|
| |.. | /└└└└\../\ \ '~ヽ ::::::::::::::}
| .∨.|llllllllllllllllllllllllllllllllllllllll| ::::::::::{
| |.|llllllllllll;/⌒/⌒ 〕 :::::::::::}
| |.|lllllllll; ./ . . | ::::::::::[
.| |.|llllll|′ / . | .| :::::::::::|
.| |.|llll| | .∧〔 / :::::::::::::/
/ }.∧lll | ../ / / :::::::::::::::::\
/ /| \┌┌┌┌┌/./ /::: :::::::::::::::::\
( ゙゙^^¨^¨゙゙¨  ̄ ̄ ̄ /:::::::::::
0972nobodyさん
03/08/13 16:48ID:p0VVcbYX大きなオチンチンを喉の奥までくわえ込んでのフェラは大人顔負けですぞ。
挿入シーンは少ないながらも小さなオマンコにしっかり挿入されているシーンが勃起モノ!
若い娘はいいですな。
無料ムービーはこちら!
http://www.cappuchinko.com/
0973960
03/08/13 16:50ID:???解決しました。
0974nobodyさん
03/08/13 16:55ID:???レス数が950を超えています。1000を超えると書き込みができなくなります。