【Perl】初心者コーナー Part15
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
02/08/08 23:19ID:???1:自分はこう言う事がしたい。
2:それでこんな風にやってみたが・・・
3:それだとこんなエラーが出て上手く行かなかった。
1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。
CGIだけど、なんか質問ある? Part 6 (その2)
http://pc.2ch.net/test/read.cgi/php/1025930486/
参考書籍の話題は【【Perl,CGI】参考書籍 第2版】
http://pc.2ch.net/test/read.cgi/php/988809842/
その他の雑多な話題は、【CGIに依存しないPerlの話題一般】
http://pc.2ch.net/test/read.cgi/php/991313362/
スクリプトの改造依頼は 【スクリプト改造工房 Part4】
http://pc.2ch.net/test/read.cgi/php/1012839651/
過去ログ、その他の役立ち情報は>>2-10あたりを見よう。
0686nobodyさん
02/09/06 23:31ID:???0689nobodyさん
02/09/06 23:42ID:Aw2qBvZ4例えば$aaaが4876で$bbbが124だった場合、$aaaを487、$bbbを6124にしたいのです。
「$bbb = chop($aaa).$bbb」 と書いてみたら、結果は$aaaが空白で$bbbが4876124になってしまいました。
どう書けばよいでしょうか。
0690nobodyさん
02/09/06 23:57ID:1kVQvMrN1件につき最大10.000円の高額収入。月収100万円以上も可能。
■画期的なビジネス!
インターネットを利用したこれまでにない斬新で画期的なビジネスです。
■誰でも出来ます!
インターネットができる環境の方なら誰でも参加可能です。
インターネットを利用したビジネスですので、自宅や会社で好きなときにで
きるビジネスです。
■専門的な知識は一切不要!
ビジネスに必要なツールは全て当社で用意いたします。
また、サポートも万全です。
■詳細は今すぐこちらから
http://www.bea.hi-ho.ne.jp/paisen/
0692685
02/09/07 00:01ID:???$ccc=$aaa$bbb;
$cco=$ccc =~ s/\d/\d/g;
$cco=$cco-1;
$ccc=~ s/(\d{1,$cco})([^\n])/$2/g;
$ccc=$ccc$bbb;
0693685
02/09/07 00:02ID:???$ccc=~ s/(\d{1,$cco})([^\n]*)*/$2/g;
こふだった。
0694685
02/09/07 00:05ID:???0695685
02/09/07 00:12ID:???$bbb='22222';
$cc0="$aaa$bbb";
$cco=$cc0 =~ s/\d/\d/g;
$cco=$cco-1;
$ccc =~ s/(\d{1,$cco})([^\n]*)/$2/g;
$ccc="$ccc$bbb";
0697nobodyさん
02/09/07 00:18ID:???$bbb = '124';
$aaa =~ s/(.)$//;$bbb = $1.$bbb;
0699T女の竹田
02/09/07 00:23ID:???そのスクリプトを理解する必要はないし、そのスクリプトから
何かを学ぼうと思わない方がいいと思うよ。
>>689
そのまま
$bbb = chop($aaa).$bbb;
で動くと思うけど。
0701685
02/09/07 00:24ID:???$bbb='22222';
$cc0=$aaa;
$cco=$cc0 =~ s/\d/\d/g;
$cco=$cco-1;
$cc1=$aaa;
$cc1 =~ s/(\d{$cco})([^\n]*)/$2/g;
$ccc="$cc1$bbb";
0702685
02/09/07 00:39ID:???きさまは以前にも突然現れ消えたことがあった。]
689[オラには聞き逃げができる。]
685[そいつはやっかいな技だ。バシッ!私も聞き逃げは自身があるんだ。]
0703685
02/09/07 00:43ID:???685[689とまではいかないがね。]
0704689
02/09/07 01:15ID:mL5CsCc5わたしもなぜ$bbb = chop($aaa).$bbb; で$bbbの値全部が$aaaの頭にくっついて
しまうのか、わからないんです。
>>685
$aaa $bbb の値は dat.txtを参照しているので、固定値ではありません。
0705689
02/09/07 01:34ID:mL5CsCc5わたしもなぜ$bbb = chop($aaa).$bbb; で$aaaの値全部が$bbbの頭にくっついて
しまうのか、わからないんです。 ○
わたしもなぜ$bbb = chop($aaa).$bbb; で$bbbの値全部が$aaaの頭にくっついて
しまうのか、わからないんです。×
0706nobodyさん
02/09/07 01:42ID:???#例
while($aaa){
$bbb = chop($aaa).$bbb;
}
これなら$aaaが空になって全部$bbbの頭に付く。
0708689
02/09/07 01:55ID:mL5CsCc5きっとその通りです(><)
でも、置換条件があるので、
if($aaa ne $hoge){
$bbb = chop(aaa).$bbb;
}
というように、{}内に書かなきゃいけないかなと思っているのです。
発想自体間違っているのかな...
>>707
文字列扱いにする方法はありますでしょうか。。
0710nobodyさん
02/09/07 02:03ID:???chopの時点で文字列コンテキストに変換されるわけだが。。
>>708
適当なとこ言うな。
>>689
普通にやりたいことやるなら
$bbb = substr($aaa, -1) . $bbb;
だけど、chopでも$bbbの値は希望のものになるはず。
ならないなら他に原因がある。
前後のコード晒してみると吉。
0711nobodyさん
02/09/07 02:04ID:???if($flag != 1 && $aaa ne $hoge){
$bbb = chop($aaa).$bbb;$flag=1;
}
とか。
0712nobodyさん
02/09/07 02:10ID:???0713689
02/09/07 02:10ID:mL5CsCc5とりあえずchopはあきらめてsubstrで試してみます。
(やりたい事は同じはずだから)
ありがとうございました。
0714nobodyさん
02/09/07 02:12ID:???その外側にwhile(){〜}とかfor(){〜}とかforeach(){〜}とかの
ループがあるんじゃないのか。
substrじゃ$aaaの値は減らないけど良いの?話違わない?
>>712
スレタイ嫁
0715nobodyさん
02/09/07 02:33ID:???$bbb = (chop($aaa)).$bbb;
0717名無しさん@Meadow
02/09/07 04:24ID:???私は、jperl使ってるので別に文字化けしないけど。
じゃtr使えばいいじゃんという問には答えません。
0718nobodyさん
02/09/07 12:21ID:???0719nobodyさん
02/09/07 14:35ID:???0720nobodyさん
02/09/07 16:12ID:???0721CGIゲームつくりたい人
02/09/07 18:06ID:BCsa1yWW目標が自分でCGIゲームを作ることで
そのために参考書を買って勉強したいのですが
オススメの本ありますか?
本屋いってもゲーム作りの本がどれだかわからなくて・・・
よろしくおねがいします。
0722nobodyさん
02/09/07 18:40ID:???作りたいゲームにもよるけど
Perl は君の求めるものに向いてないと思うよ。
JavaScript とかの方が良いんじゃない?
0724nobodyさん
02/09/07 19:11ID:???まてまて、Flash+CGIという素晴らしいコンビネィションがあるだろうが
0726nobodyさん
02/09/07 20:02ID:6TBf75EAヤッタ?マン コーヒー ライター
という3つがスペースで区切られてあった時、
aa=ヤッタ?マン
bb=コーヒー
cc=ライター
というふうにするにはどうすればよいのでしょうか?
0727nobodyさん
02/09/07 20:05ID:???>>721 はわざわざこのスレを選んだんだ。
http://www.webgame.co.jp/
でも Perl のゲームはわりとあるし。
てゆうか検索してオレがびっくりしたよ。
しりとりゲームくらいならココで。
http://www.geocities.co.jp/SiliconValley-Oakland/1680/xperl/
0730CGIゲームつくりたい人
02/09/07 20:58ID:BCsa1yWWレスありがとうございます。
作りたいゲームは・・・罪と罰++やFFAみたいなゲームです
普通のPerlの本をきちんと読めば作れますか?
それともゲーム作成向けの本とかあるんですか?
0732nobodyさん
02/09/07 21:08ID:???だいたいゲーム作りたいならCやれ。
Perlは馬鹿でも使える言語だが、ゲームが作りやすい言語でない。
習得期間は
Perlは3カ月で
Cは1年
C++は3年だ。
Perlの本はオライリーの奴買っとけ。
0733nobodyさん
02/09/07 21:13ID:???複雑さがCとは比べものにならないでしょ(^_^;)
0734nobodyさん
02/09/07 21:17ID:???両方覚えたけどPerlの方が楽。
Cは基本的な部分を覚えるまでに挫ける人が出そう。
プログラムのいろはを知らない人間ならPerlからの方が断然楽だと思う。
サンプルソースが山のように転がってるし。
なにをもって習得とするかの問題だけど、出力をHTMLでできる分、
PerlでCGIスクリプト作った方が楽だと思うよ。
0735nobodyさん
02/09/07 22:28ID:???perlは「ゲームを作るための言語」ではないので
「ゲームの作り方の本」なるものはないと思われ。
応用すればゲームにもなるというだけの話
0736nobodyさん
02/09/08 01:41ID:GXmEPtQHと
foreach(@xx){〜}
の違いを教えてください
0737nobodyさん
02/09/08 01:46ID:???perl -MO=Deparse,-x7 -e 'foreach(qw/a b c/){ print }'
というわけで、for(@配列)の場合、ただのforeachと同等。
0738nobodyさん
02/09/08 01:53ID:GXmEPtQH0739nobodyさん
02/09/08 06:17ID:nOl8KoRoperlでゲームは作れるが、perlでゲームを作る本などない
perlで掲示板が作れるようになれば、まあゲームも作れるだろう
0741nobodyさん
02/09/08 06:47ID:gqIGmvuoアクション系列のゲームならそうでしょうが、ウェブ上でのゲームならPerlベースで幾らでもありますよ。
表現はHTMLが精々ですけどね(w
で、質問です。
AnyDBMで1000人前後のデータ(名前、成績、等大小50パラメータぐらい)を管理しようと考えています。
それでファイルロックをどうしようか悩んでいるのですが、
sub LOCK {open (LOCK, "lockfile.lock");flock(LOCK,2);}
sub UNLOCK {flock(LOCK,8);close(LOCK);}
こんなのってありなんでしょうか?
それともやはりrename等で制御したほうが良いですか?
0742名無し二丁拳銃 ◆0s6WDHa6
02/09/08 11:30ID:HukZlCsp以下のソースだと,カウンタの値が永遠に1のままなんです。
#!/usr/local/bin/perl
#値を保存するファイル名
$file = "count.dat";
#−−処理開始−−
#ファイルを読み込み
open FH,$file;
$count= <FH>;
#カウントアップ処理
$count++;
#書き出し処理
print "Content-Type: text/html\n\n";
print "Total : <a href=cgi-bin/acces/replist.cgi>$count</a>";
#値を保存
open FH,>$file;
close FH;
exit;
0744nobodyさん
02/09/08 11:41ID:???html形式で送ろうと思うんですが、
ヘッダーの部分の
Content-Type: text/plain; charset=ISO-20220JP
ここのtext/plainを
text/html
に変えればいいだけですか?
ローカルだと実行できないので教えてください。
0746nobodyさん
02/09/08 12:14ID:Y8OpaJeI掲示板のプログラムを作成しています。
『投稿確認』をしたいのですが、そこでどうにもこうにも困ってるキングオブDQNなんです。
まず、htmlファイルからsubmitで送られたデータを表示することはできるのですが
そこから先、どうすればいいのか分かりません。
どうすれば
[投稿確認画面表示]⇒[logファイルへの書き込み]の二段構えにすることができるのでしょう?
0747nobodyさん
02/09/08 12:21ID:???<input type="hidden" name="***" value="*********">
hidden
0749746
02/09/08 12:31ID:Y8OpaJeIありがとうございます。さっそく作ってみます。
0751nobodyさん
02/09/08 13:02ID:???0752746
02/09/08 13:16ID:Y8OpaJeI確認画面でsubmitで送られた文字を表示して
<form action = "./data.cgi" mehtod = post>
<input type = "hidden" name = "confirm" value = "OK">
<input type= "submit" value = "投稿する">
で最初にsubmitで送られた文字を表示するのと同じCGIを呼び出して
if ($confirm eq 'OK' ) {
……
}
で分岐させたのだけれど、うまくいかない。
確認画面が表示されるだけです。しかも、nameとかemailとかのデータが全部消えてる。
0754747
02/09/08 13:21ID:???1から勉強しなおせ。
>751
gotoなどと言ってみるテスト。
0757747
02/09/08 13:30ID:???nameなどのデータを入力
↓
入力されたデータを受け取る
確認画面表示
↓
入力されたデータを送っていない
データが空っぽ
0759746
02/09/08 14:01ID:???なには他に注意点はあるのでしょうか?
荒らしてゴメン。
0760nobodyさん
02/09/08 14:04ID:???ソースをtxtにしてアプれ。
多分一斉につっこんでくれる。
0762761?
02/09/08 14:11ID:???これだとhtmlファイルを見ると\nが効いて改行されているのですが
cgiファイルでは改行されていないので見にくいです。
ヒアドキュメントを使って print HTML <<HEADER ではだめでした。
どうしたらよいでしょうか?
open(HTML, ">hoge.html") || &error("ファイルが開けません");
print HTML "<HTML>\n<HEAD>ここにタイトルやスタイルシートなどをごちゃごちゃと</HEAD>\n<BODY>\n";
close(HTML);
0763762?
02/09/08 14:17ID:???0764746
02/09/08 14:25ID:???0765nobodyさん
02/09/08 14:29ID:???0766nobodyさん
02/09/08 14:29ID:???1:自分はこう言う事がしたい。
2:それでこんな風にやってみたが・・・
3:それだとこんなエラーが出て上手く行かなかった。
1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。
0767nobodyさん
02/09/08 14:45ID:971QY8yxどのように書いたらよいですか?
a.sh
#!/bin/sh
STR=testtxt
↑
(このSTRという変数をperlのスクリプト内で使いたい)
0768nobodyさん
02/09/08 14:52ID:???#!/bin/sh
export STR=mona
/usr/bin/perl test.pl
-- test.pl ----------------------------
#!/usr/bin/perl
print "STR = $ENV{STR}\n";
0769nobodyさん
02/09/08 16:11ID:QxRWekvCiモード用作成は初めてで、
しかもMacなので、どうやってテストすればいいか分かりません。
iモードツールみたいなもののMac版ってないですかね?
教えて下さい。
0770nobodyさん
02/09/08 16:27ID:???0771nobodyさん
02/09/08 16:30ID:fnlZSMGR0772nobodyさん
02/09/08 21:22ID:???どうやらGoogieは、「〜.cgi」で終わってるリンクは無視するけど、
「〜.cgi?***」となってるリンクは拾う模様。
***の部分はテキトーで構わないので、Googleに拾って欲しければ
そのCGIへリンクを張る時に、「<a href=〜.cgi?hoge>」とでもしておけばよし。
まぁ俺調べに過ぎないのでダメだったらすまそ。
つってもスレ違いぽいけど。
0773nobodyさん
02/09/08 21:42ID:???open(HTML, ">hoge.html") || &error("ファイルが開けません");
print HTML "<HTML>\n";
print HTML "<HEAD>ここにタイトルやスタイルシートなどをごちゃごちゃと</HEAD>\n";
print HTML "<BODY>\n";
close(HTML);
0774nobodyさん
02/09/08 22:08ID:wn4ctmfO0776nobodyさん
02/09/08 22:13ID:???漏れ串くらいしか無理。
A串は無理。
診断君でも見てな。
0777nobodyさん
02/09/08 22:13ID:???0778775
02/09/08 22:18ID:???0779741
02/09/08 22:19ID:gqIGmvuo0780nobodyさん
02/09/09 00:56ID:ocbC3C/Q0781nobodyさん
02/09/09 01:41ID:ewVE42mB初心者なのでよろしくお願い致します
CGIを単独で実行できるEXEにするようなツールはありませんか?
postやgetで受信した変数を判断し、ローカルでそれっきりで動くもの
そういうものはありませんか?
0782nobodyさん
02/09/09 01:47ID:???0783Rikuta
02/09/09 01:50ID:4uRhXRlu長くなったタイトルや、URL表記を途中まで取得し、
残りを「....」としたいのですが、正規表現ではどうするのでしょうか。
@subject = split(//,$subject);
@subject = splice @subject,0,40;
undef $subject;
foreach (@subject){
$subject = $subject.$_;
}
print $subject;
としたのですが、当然というか・・・日本語では化けてしまいます。
Jperlを使用しないでどうすればよいでしょうか。
0784nobodyさん
02/09/09 01:52ID:ewVE42mBありがとうございます
試して見ます
■ このスレッドは過去ログ倉庫に格納されています