トップページ⇒php
1001コメント324KB

【Perl】初心者コーナー Part17

レス数が1000を超えています。これ以上書き込みはできません。
0001 ◆Go4ZKngPGE 02/10/14 17:24ID:???
いらっしゃーい、Perlの「コーディング」で困ってる人のスレです。

1:自分はこう言う事がしたい。
2:それでこんな風にやってみたが・・・
3:それだとこんなエラーが出て上手く行かなかった。

1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。

CGIだけど、なんか質問ある? Part 8
http://pc.2ch.net/test/read.cgi/php/1032704121/
参考書籍の話題は【Perl,CGI】参考書籍 第三版
http://pc.2ch.net/test/read.cgi/php/1030209573/
その他の雑多な話題は、【CGIに依存しないPerlの話題一般/Part2】
http://pc.2ch.net/test/read.cgi/php/1030548610/
スクリプトの改造依頼は 【 スクリプト改造工房 PART 5 】
http://pc.2ch.net/test/read.cgi/php/1028193595/

過去ログ、その他の役立ち情報は>>2-10あたりを見よう。
0978nobodyさん02/11/20 16:57ID:???
とりあえず処理あれこれが原因なのでよーく検証してみれ

関係ないけど、
@line = <FILE>;
foreach(@line){ 〜 }
は
while (<FILE>) { 〜 }
の方がよさげ。
0979nobodyさん02/11/20 17:01ID:???
>976
画面への出力に使うprintは問題の文中にしかありません。心配になって、
問題の文の前後にprint "---\n";をつけて確かめたから確実です。

>977
(前略)
close OUT;
print $hogehoge;
ということでしょうか。正常に$hogehogeの内容が出力されますし、
closeの前にあったprint "$hogehoge";と同じ結果になります。
0980nobodyさん02/11/20 17:03ID:???
>978
自分でも調べているのですが、なかなか…
foreachはwhileに変えておきます。有り難うございました。
0981nobodyさん02/11/20 17:06ID:???
$hogehogeをどこでどう定義してるか。
foreachの中で$hogehogeに手を加えてるのかどうか。
人に物を聞くならこのくらい書け。
0982nobodyさん02/11/20 17:35ID:???
>981
これは失礼。しかしながら、最初に読み込んだきり何も手を付けていない
$line[0]を$hogehogeと置き換えても同じ現象が発生しているため、定義云々は
関係ないと思います。
0983nobodyさん02/11/20 17:43ID:???
>>982
$line[0]って何だかしってんのか。
yomikomi.txtの1行目だぞ。おまえはそれを処理して
hoge.txtに書き込もうとしてるって書いてるよな。
なぜ、「読み込んだきり何も手を付けていない」なんて
いえるんだよ。
0984nobodyさん02/11/20 17:48ID:???
それとなー、
>>980
>foreachはwhileに変えておきます。
こんなこと言ってるから、相当なとんまかと思われる。
0985nobodyさん02/11/20 17:49ID:???
>983
特定の文字列が出るまでは何もしないで次の行に移るようになっています。
そして1行目には絶対その文字列が出てきません。従って、$line[0]には
手を加えることはありません。
0986nobodyさん02/11/20 17:50ID:???
スクリプト全部晒したら?
0987nobodyさん02/11/20 18:29ID:???
openに失敗してるとか。

open OUT, ">> hoge.txt" or die $!;
これでどうなる?
0988nobodyさん02/11/20 21:38ID:???
遅くなって申し訳ありません。いろいろ試そうと思ったのですが、
ソースがスパゲッティになってたので、いくつかのサブルーチンを
別ファイルに移し、requireで呼べるようにしたんですが…

そしたら何故か解決しました。何で?(´Д`;

>986
700行あるので…守秘義務ってのもありますし(うるさいんですよ…)。

>987
試してみたところ、>973の#1では問題なくopenしていて、ファイルが
生成されてちゃんと書き込みも出来ているのですが、#2では
「No such file or directory …」と言われました(でも#1でファイルは
出来てます)。
0989nobodyさん02/11/20 21:43ID:???
書き損ねです。

×ソースがスパゲッティになってたので、いくつかの…
○ソースがスパゲッティになってたので、多少なりとも見やすくするためにいくつかの…

で、「No such file or directory…」と言われたのは
サブルーチンを別ファイルに移す前の話です。
原因はわかりませんでしたが、とりあえず解決出来ました。
ご協力ありがとうございました。
0990nobodyさん02/11/20 21:46ID:???
ぶっきらぼうな日本語でもいいですから、
946を和訳してください。

せっかく書いていただいたのに、
実行してもなーんにも起こらず、
修正しようとも意味が判らず
さっぱりです。

とてーも困っています。

0991nobodyさん02/11/20 21:50ID:2IcSyXEF
外部データファイルを読み込む時は、
open IN,"datafile.dat";
while(<IN>){ 〜〜中略〜〜}
close IN;
これで読み込めますよね。

これと同じ要領で、ファイルではなくWEBページを読み込みたいのですが可能でしょうか?
例えば、yahooのトップページのソースを読み込んでdataファイルに出力する・・
といった類いのことがしたいのです。

ヒントだけでも構いませんのでよろしくお願いします。
0992nobodyさん02/11/20 21:55ID:???
perl -F, -ane 'print @F[2];' kyoto.csv
とすると表示されますが、
perl -F, -ane 'print @F[4];' kyoto.html.csv
……
perl -F, -ane 'print @F[10];' kyoto.html.csv
は表示されません。perlってコマンドラインの●を認識するのでしょうか?
0993nobodyさん02/11/20 21:57ID:???
1000!
0994nobodyさん02/11/20 21:57ID:???
1000
0995nobodyさん02/11/20 21:58ID:???

0996nobodyさん02/11/20 21:59ID:???
1000kamone
0997nobodyさん02/11/20 21:58ID:???
1000です
0998nobodyさん02/11/20 22:00ID:???
?
0999nobodyさん02/11/20 21:59ID:???
ん?
1000nobodyさん02/11/20 22:00ID:2IcSyXEF
1000だよ。
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。