• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ファイル名変更プログラム)

ファイル名変更プログラムについての質問

このQ&Aのポイント
  • Perlを学んでいます。ファイル名変更プログラムについて質問があります。
  • 具体的には、9~15行目の意味や17~20行目の$ctypeの定義について疑問があります。
  • また、28~36行目の($fname,$ext2) = split(/\./,$fname);の$ext2の意味や使い方についても教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.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 は知りませんが、いっぱしの計算機屋です

saya9999
質問者

お礼

>10行目は、ファイル名がダブルクォートで括られていなかったときのために >ある処理です。 >fname はファイル名だとすると、拡張子の前にピリオドがあると想像 >できます。 >split() は、最後の "." の左と右のふたつに分割して、一気に >fname と ext2 に代入します なるほど、この辺がかなり??だったのですが、よく分かりました。 >17行目で ctype に代入をしていますね。「Content-type: なんとか」 >のなんとかの 部分を切り出して ctype に代入しようとしています。 う~ん、ここはファイルのタイプをその記述で取得できるってことなの でしょうね~。(かな?) かなり前進致しました。いつもいつも感謝致します! ありがとう、a-kumaさん!!

関連するQ&A

専門家に質問してみよう