dポイントプレゼントキャンペーン実施中!

Perlを学んでいます。
他人の作ったプログラムに、下記のようなものがあります。
それを読解しようと試みていて、大筋は理解できたと思うのですが、
細かいところで、『これは何?』とつまづいてしまいました。
もしどなたか分かる方がいらっしゃいましたら、暇な時で結構です。
未熟者の私に教えて頂けないでしょうか。どうかよろしくお願いします。

??な個所

 ・9~15行目の意味:おそらくファイル名の”やスペース等を外しているの
            かなと思うのですが・・・
 ・17~20行目:ここに記述した部分の前後どこにも$ctypeの定義はないので
         すが、$ctypeにはなにが入っているのですか?
 ・28~36行目:いきなり出てきた($fname,$ext2) = split(/\./,$fname);
         の$ext2はなんなのでしょうか?拡張子らしい感じはするの
         ですが、この35行目でどうして$ext2が拡張子として定義で
         きるのでしょうか。

非常に量の多い質問でごめんなさい。答えられるときに答えられる部分のみで結構です。よろしくお願いします!!

http://www.geocities.co.jp/HeartLand-Cosmos/4223 …

A 回答 (1件)

perl は、あんまり詳しくないのですが、分かる範囲で。



>・9~15行目の意味:おそらくファイル名の”やスペース等を外しているのかなと思うのですが・・・

そうですね。9行目は、「ブランク(タブやスペース)filename="(ダブルクォート以外の文字の羅列)" の
ダブルクォート以外の文字の羅列(ファイル名と思われる文字列)を filename に代入しています。

10行目は、ファイル名がダブルクォートで括られていなかったときのためにある処理です。

14,15行目は、同様に name=なんとか ってところから、イコールの右側を切り出して
name に代入しようとしています。

>・17~20行目:ここに記述した部分の前後どこにも$ctypeの定義はないので
> すが、$ctypeにはなにが入っているのですか?

17行目で ctype に代入をしていますね。「Content-type: なんとか」のなんとかの
部分を切り出して ctype に代入しようとしています。

>・28~36行目:いきなり出てきた($fname,$ext2) = split(/\./,$fname);
>の$ext2はなんなのでしょうか?拡張子らしい感じはするの
>ですが、この35行目でどうして$ext2が拡張子として定義で
>きるのでしょうか。

fname はファイル名だとすると、拡張子の前にピリオドがあると想像できます。
split() は、最後の "." の左と右のふたつに分割して、一気に fname と ext2 に
代入します(正確な用語を知りません)。

# こんな説明で、お役に立てますか?
# perl は知りませんが、いっぱしの計算機屋です
    • good
    • 0
この回答へのお礼

>10行目は、ファイル名がダブルクォートで括られていなかったときのために
>ある処理です。
>fname はファイル名だとすると、拡張子の前にピリオドがあると想像
>できます。
>split() は、最後の "." の左と右のふたつに分割して、一気に
>fname と ext2 に代入します

なるほど、この辺がかなり??だったのですが、よく分かりました。

>17行目で ctype に代入をしていますね。「Content-type: なんとか」
>のなんとかの 部分を切り出して ctype に代入しようとしています。

う~ん、ここはファイルのタイプをその記述で取得できるってことなの
でしょうね~。(かな?)
かなり前進致しました。いつもいつも感謝致します!
ありがとう、a-kumaさん!!

お礼日時:2001/07/18 20:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!