Perlコーディング初心者質問スレ Part 45
■ このスレッドは過去ログ倉庫に格納されています
0001988
2005/12/08(木) 22:48:27ID:???【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。
1: 自分はこういう事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。
最低でも1と3が無いと誰も答えられないよ。
ソース貼る時は、全角スペースでインデント忘れずに。
良い回答は良い質問から。一緒に勉強しましょう。
過去ログやお勧めサイトは >>2-10
0414382-383
2006/01/07(土) 23:58:04ID:5axJGSRVRed Hat Linux 7.2 2.96-118.7.2
0415382-383
2006/01/08(日) 00:00:24ID:0I8ISceR日ごとに書庫化されています。
スクリプトを実行するたびに書庫にログが追加されています。
0416nobodyさん
2006/01/08(日) 00:01:40ID:???RedHat7.2+perl5.6.1で「コマンドライン実行」した結果は?
「name は予約語となる可能性があります。あるいは、name の前にオペレータが抜けてはいませんか。」
なんて表示が日本語で出てくるわけじゃないよな?
0417382-383
2006/01/08(日) 00:02:34ID:0I8ISceR必要なら言ってください。
0418382-383
2006/01/08(日) 00:03:30ID:0I8ISceRFAQ に「当サーバではコンソールの使用を認めておりません。」とあります。
参考になりますか。
0420382-383
2006/01/08(日) 00:05:19ID:0I8ISceRどういうことですか。
0421nobodyさん
2006/01/08(日) 00:10:14ID:???あと自作CGIはローカルに実行環境を持って、そこでテストしてからレン鯖に持っていくのが常識。
で、結論から言うと>>402のスクリプトに異常はない。これでエラーが出てるなら
perl以外の問題である非常に高い。レン鯖の名前を出せるようなら、親切な人が
検証してくれる可能性もあるが。
0422nobodyさん
2006/01/08(日) 00:10:29ID:???市ねってことでしょ。まさか自分のPCにPerlも入れてない?
0423nobodyさん
2006/01/08(日) 00:11:03ID:???0424nobodyさん
2006/01/08(日) 00:18:25ID:???0425nobodyさん
2006/01/08(日) 00:22:07ID:???初心者回答者は答えられない言い訳を質問者に転嫁することが多いですね
0426nobodyさん
2006/01/08(日) 00:22:27ID:???ですが何か?
0427nobodyさん
2006/01/08(日) 00:28:21ID:???0428nobodyさん
2006/01/08(日) 00:29:43ID:???0431nobodyさん
2006/01/08(日) 01:14:47ID:???0432nobodyさん
2006/01/08(日) 01:17:17ID:???0434nobodyさん
2006/01/08(日) 01:17:57ID:???0436382-383
2006/01/08(日) 01:27:57ID:???0438nobodyさん
2006/01/08(日) 01:46:42ID:???ID出してもどうせだれも答えられないんだからID出すこと自体無意味
0439nobodyさん
2006/01/08(日) 01:48:20ID:???初心回答者は自画自賛もお手の物です。
0441nobodyさん
2006/01/08(日) 01:53:13ID:???0442nobodyさん
2006/01/08(日) 01:58:25ID:???0443nobodyさん
2006/01/08(日) 02:00:29ID:???スペースじゃなくて文字が入っていても結果が同じだと言ってるのだから何の解決にもならない
二つスクリプト貼ってるだろ
よく読め
ボケカス
0444nobodyさん
2006/01/08(日) 02:08:37ID:???俺ンとこでも再現した!
0445nobodyさん
2006/01/08(日) 02:09:04ID:???エラーメッセージ嫁
0446nobodyさん
2006/01/08(日) 02:16:12ID:???<HTML>
<BODY>
<FORM action="" method=POST>
<TEXTAREA name="comment1" cols="60" rows="10"></TEXTAREA>
</FORM>
</BODY>
</HTML>
実行結果
<HTML>
<BODY>
<FORM action="" method=POST>
<TEXTAREA
</FORM>
</BODY>
</HTML>
0448nobodyさん
2006/01/08(日) 02:20:40ID:???0450nobodyさん
2006/01/08(日) 02:22:59ID:???モノは出力されてんだから
シェルからでも同じ
0452nobodyさん
2006/01/08(日) 02:24:42ID:???<HTML>
<BODY>
<FORM action="" method=POST>
<TEXTAREA
</FORM>
</BODY>
</HTML>
0453nobodyさん
2006/01/08(日) 02:25:33ID:???みんな優しいのな。
仕事なら自分で解決しろとしか俺は言わんが。
0454nobodyさん
2006/01/08(日) 02:26:06ID:???fedora core 4
0455nobodyさん
2006/01/08(日) 02:26:13ID:???content-type: text/html
<HTML>
<BODY>
<FORM action="" method=POST>
<textarea name="comment1" cols="60" rows="10">test</textarea>
</FORM>
</BODY>
</HTML>
0456nobodyさん
2006/01/08(日) 02:27:15ID:???いったいおまえらにバージョンの差異がわかるのかと(ry
0459nobodyさん
2006/01/08(日) 02:31:00ID:???0460nobodyさん
2006/01/08(日) 02:31:27ID:???0462nobodyさん
2006/01/08(日) 02:32:15ID:???Content-type: text/html
<HTML>
<BODY>
<FORM action="" method=POST>
<TEXTAREA
</FORM>
</BODY>
</HTML>
$comment1 = "test"; # の場合
Content-type: text/html
<HTML>
<BODY>
<FORM action="" method=POST>
<TEXTAREA
</FORM>
</BODY>
</HTML>
0463nobodyさん
2006/01/08(日) 02:32:30ID:???0464nobodyさん
2006/01/08(日) 02:33:42ID:???0465nobodyさん
2006/01/08(日) 02:34:07ID:???というかこいつらのデバッグってただ流せれば終わりなの?
0466nobodyさん
2006/01/08(日) 02:35:39ID:???0468nobodyさん
2006/01/08(日) 02:35:45ID:???$line =~ s|<TEXTAREA name="comment1" cols="60" rows="10"></TEXTAREA>|<TEXTAREA name="comment1" cols="60" rows="10">$comment1</TEXTAREA>|;
$line =~ s|comment1" cols="60" rows="10"></TEXTAREA>|comment1" cols="60" rows="10">$comment1</TEXTAREA>|;
どっちでもダメだわこりゃ
0469nobodyさん
2006/01/08(日) 02:37:44ID:???するぐらいならヒアドキュメントのほうがどれだけいいことか。
0470nobodyさん
2006/01/08(日) 02:38:01ID:???0473nobodyさん
2006/01/08(日) 02:40:19ID:???0474nobodyさん
2006/01/08(日) 02:41:38ID:???0476nobodyさん
2006/01/08(日) 02:43:14ID:???あの質問ではあんなテンプレートあってもなくても意味がないような気がするが
のちのちの完成形ではテンプレートを読み込むというのが絶対条件なら
くずせないだろ、バカチン
0477nobodyさん
2006/01/08(日) 02:44:46ID:???<HTML>
<BODY>
<FORM action="" method=POST>
<INPUT type=text
</FORM>
</BODY>
</HTML>
0478nobodyさん
2006/01/08(日) 02:45:40ID:???0480nobodyさん
2006/01/08(日) 02:47:04ID:???0481nobodyさん
2006/01/08(日) 02:47:22ID:???0482nobodyさん
2006/01/08(日) 02:48:48ID:???仮にそんなことがあるとしてもそんなことが判明しても解決にならない。
formのnameが別の名前に置き換えられないんだから。
0483nobodyさん
2006/01/08(日) 02:50:03ID:???0484nobodyさん
2006/01/08(日) 02:50:31ID:???0486nobodyさん
2006/01/08(日) 02:53:22ID:???全然付いていけない。
オヤスミナサイ。
0488nobodyさん
2006/01/08(日) 02:54:28ID:???つーかエラーじゃないし
0490nobodyさん
2006/01/08(日) 03:03:25ID:???$line =~ s|<TEXTAREA name="comment1" cols="60" rows="10"></TEXTAREA>|<TEXTAREA name="comment1" cols="60" rows="10"></TEXTAREA>|;
0491nobodyさん
2006/01/08(日) 03:08:21ID:???それも試したんだわ
これも試した↓
$line =~ s|comment1" cols="60" rows="10"></TEXTAREA>|comment1" cols="60" rows="10"></TEXTAREA>|;
結果
Content-type: text/html
<HTML>
<BODY>
<FORM action="" method=POST>
<TEXTAREA
</FORM>
</BODY>
</HTML>
どうやらこうやら$lineがnameを含有していて評価部分にnameがあろうとなかろうと$lineを評価してしまうとダメらしい
$lineを評価なしにそのままprintしたときだけテンプレートのすべてがprintされる
0493nobodyさん
2006/01/08(日) 03:15:59ID:???再現しない環境があるんだから
それが大多数ならおかしくないな
perlやosの種類・バージョン・リビジョンの組み合わせは星の数だ
0494366
2006/01/08(日) 04:52:43ID:ekOfQHSyそうなんですか!?知りませんでした。
ご親切にありがとうございます!
質問していいですか?
「data.txt」 という何か書き込みされている テキストファイルがあるとして
open(F,"data.txt");
while(<F>){
chomp;
push(@arr,$_);
}
close(F);
$num = @arr;
$num += 1;
という感じに書き込みした順番付けをしてあって、順番は1から始まる数字なんですが
このスクリプト4行目の「$_」には、行番号がセットされているんですか?
@arrというのは、どの部分を指しているんでしょうか?
CGI&Perlポケットリファレンスには、「$_」は特殊変数と言う事位しか触れられていません。
@arrというのは、「ただのarrという名前の配列」と理解してるんですが、これは大間違いですかね?
0495nobodyさん
2006/01/08(日) 05:04:36ID:Pbsz8/Oh$numは要素の数が入る
最後の行、その他の解釈の仕方があればそれを知りたい
0497366
2006/01/08(日) 05:15:05ID:ekOfQHSyそうなんですか!?知りませんでした。
ご親切にありがとうございます!
質問していいですか?
「data.txt」 という何か書き込みされている テキストファイルがあるとして
open(F,"data.txt");
while(<F>){
chomp;
push(@arr,$_);
}
close(F);
$num = @arr;
$num += 1;
という感じに書き込みした順番付けをしてあって、順番は1から始まる数字なんですが
このスクリプト4行目の「$_」には、行番号がセットされているんですか?
@arrというのは、どの部分を指しているんでしょうか?
CGI&Perlポケットリファレンスには、「$_」は特殊変数と言う事位しか触れられていません。
@arrというのは、「ただのarrという名前の配列」と理解してるんですが、これは大間違いですかね?
0498494
2006/01/08(日) 05:52:31ID:ekOfQHSy早速のアドバイスありがとうございます!
...と言うことは、例えば「date.txt」の中身が
山田太郎,[email protected],\n
鈴木花子,[email protected],\n
佐藤次郎,[email protected],\n
だった場合、具体的に言うと「$_」の最初は
「山田太郎,[email protected]」で、2番目に
「鈴木花子,[email protected]」が来て、3番目に
「佐藤次郎,[email protected]」という順番でセットされていく訳ですか?(ただ\nが抜けただけ?)
これが、@arrにセットされていく訳だから@arr[0]は【山田太郎,[email protected]】という理解なんですがOKですかね?
その後の、「$num = @arr;」という処理の仕組みが詳しく説明できないのですが、
結果は【山田太郎,[email protected]】は【山田太郎,[email protected],1】となっています。
>>495さんは【$numは要素の数が入る】と言われてますが、もう少し噛み砕いてもらえないでしょうか?
「$num」には、「@arr」からどんなデータが渡されているのでしょうか?
0499nobodyさん
2006/01/08(日) 05:59:48ID:???非常に痛々しいが答えてあげる。
「$_」の中身が知りたければprintしなさい。
pushの解釈はそれでおk。
「$num = @arr;」は@arrの要素数、つまり>>498の例の場合は3が入る。
これ以上噛み砕きようがない。その後で1足してるけど意図は不明。
つか書いたのお前だろうがよ。
0501498
2006/01/08(日) 06:08:00ID:ekOfQHSy10行目の
@arr[0]は【山田太郎,[email protected]】は、
$arr[0]は【山田太郎,[email protected]】でした!書き間違えてました!
もう一つ補足です。
僕の中ではまだ仮定なのですが、
「$num = @arr;」という処理は、「@arr」の中身を順番に「$num」に渡す。
「@arr」には3つの変数がセットされていて、それぞれ
「山田太郎,[email protected]」
「鈴木花子,[email protected]」
「佐藤次郎,[email protected]」
そんでもって、それらの名前は「$arr[0]」、「$arr[1]」、「$arr[2]」となると。
>>495さんが言ってた【$numは要素の数が入る】の【要素の数】とは、
「$arr[0]」の「0」の事だったんですかね!
だから、「$num = @arr;」の処理をすると、「1」、「2」、「3」になってる!
と考えれば納得できますけど、この仮定は合ってます?やっぱりダメですか?
0503nobodyさん
2006/01/08(日) 06:16:30ID:???0504nobodyさん
2006/01/08(日) 06:17:27ID:???0505nobodyさん
2006/01/08(日) 06:18:55ID:???0506501
2006/01/08(日) 06:42:29ID:ekOfQHSy#!/perl/bin/perl
require "jcode.pl";
print "Content-type: text/html\n\n";
open(F,"data.txt");
while(<F>){
chomp;
push(@arr,$_);
}
close(F);
$num = @arr;
$num += 1;
print $num;
をやったら、「4」が出ました!
>>499さんが「3」が入るの意味が分かりました!
みなさん、僕のレベルが低くてすみませんでした。
でも、ありがとうございました!
CGI&Perlポケットリファレンスはお勧めだと言われて買ったんですけど、基本と言うか仕組みと言うか、その辺を分かった上で使う物みたいな気がします。
ただ、僕のレベルが低いだけかもしれませんけどね。
やっぱり、perlやphpってのは本だけでやるものじゃなくって、ちゃんと学校行って勉強するべきなんですかね?
>>503
早くこのレベルから抜け出たいです!>>503さんはどれくらいの経歴の持ち主なんですか??やっぱり何年もされてるんですか?
0507nobodyさん
2006/01/08(日) 06:53:18ID:???ネットの情報だけでも一週間あればBBSくらい作れるやつはゴロゴロしてる。
逆に学校で習っても全然理解できないやつもゴロゴロしてる。
要は素質の問題。素質の差を埋めるのは勉強の仕方と、知識を求める意欲。
0508nobodyさん
2006/01/08(日) 07:03:07ID:???安易に2chに頼るヤシは成長しない。
悩んで悩んで悩みぬいてのちに来なさい。
それと、馴れ馴れしくしないでくれるかな?
お前と茶飲み話をするためにここにいるんじゃないんだから。
0509506
2006/01/08(日) 07:14:08ID:ekOfQHSy簡単な掲示板やスケジュール表は作ったりしました!
最初は、本も買ってなかったのでネットで勉強していました。そこで、配布されてたスクリプトを試して、こんな感じにしてみたいなと思ったら少し書き換えて遊んだりしていました。
なので、自分で1から作ったりは出来ませんでしたが、ほんの少しずつ「なんだか、何か分かんないんだけど、何かが分かってきたような気」がしてごくごく簡単なスクリプトを書いてみたら、
Internal Server Errorと何回も何回も出てきて悔しかったですが、やっと画面に文字が出てきた時はかなり嬉しかったんです!!
僕は、プログラムなんて向いてないだろうし、どうせ出来ないんだから...
と思っていたので余計に嬉しかったです!興奮して眠れませんでした!
>>507さんが学校で習っても全然理解できないやつもゴロゴロしてるというのは想像もつきませんが
恥ずかしいけど、僕には学校に行く余裕も無いのでネットと本で勉強して、自分が作りたいようなプログラムなら出来るくらいにはなりたいです。
でも、いつかちゃんとした設計の仕方とかも覚えてみたいので、まずは今の自分が出来ることからやってるという段階です。
>>507さん、みなさん、色々親切にしてくれてありがとうございます。
正直、僕程度のレベルじゃみなさんの邪魔になるだろうし、野次られても全然構いません。
これからはちゃんと自分で調べれることは調べてみてから相談します。無視はこたえるので、野次でも何でも良いから教えてくれたら嬉しいです!!
ありがとうございました。
0510506
2006/01/08(日) 07:24:11ID:ekOfQHSy>安易に2chに頼るヤシは成長しない。
>悩んで悩んで悩みぬいてのちに来なさい。
はい。基本がなっていない為、最初は、数多いかもしれませんが
理解して、ここに来る回数は減らします。努力します。
>それと、馴れ馴れしくしないでくれるかな?
>お前と茶飲み話をするためにここにいるんじゃないんだから。
ごめんなさい。
0511nobodyさん
2006/01/08(日) 07:31:42ID:???0512506
2006/01/08(日) 07:34:13ID:ekOfQHSyありがとうございます。
でも、前に親切な人がコテハン使っても良いこと無いって......??
言われたままに納得してましたが、そうなんですか?
■ このスレッドは過去ログ倉庫に格納されています