• ベストアンサー

ファイル名に日付・時刻を付与したい

Cプログラミングの経験はあるのですがperlのソースを初めて 改造することになりました。 変数「$i」にはシェルのファイル名が入ります。 #FS000.csh このファイル名に日付・時刻を付与して、 FS000mm(月)dd(日)hh(時)mm(分)ss(秒).csh というファイル名にしたいのですが、どうしたらいいのでしょうか?? C言語だったら、配列を宣言して、その配列にファイル名を格納、という 書き方をしようかと思うのですが、 perlでの書き方がさっぱりわかりません・・・。 変数(C言語では配列)を定義したりしなくてもいいのでしょうか? わかりにくい質問ですみませんがどうか宜しくお願いします!

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

  • ベストアンサー
  • haporun
  • ベストアンサー率40% (230/562)
回答No.2

Cとの違い ○ 変数(配列も)宣言はいらない ○ 文字列型がある ○ 厳密な型チェックが全然ない ○ 数値←→文字列の変換も勝手にやってくれる ○ 数値演算は必ずdouble ○ .演算子で文字連結 ○ "" 文字列のなかに変数を書くと、変数展開してくれる ○ '' は文字型じゃなくて文字列 ○ '' ではエスケープ文字不可 ○ 関数はサブルーチン(戻り値も可能) ○ サブルーチンの引数は任意の個数 ○ バージョンによっては2次元配列が正常に動作しない ○ 配列名には@をつける(例: @array) ○ 配列の要素には$をつける(例: $array[4]) ○ 便利なハッシュも使おう(例: $hash{'key'}) ○ ハッシュ名は%をつける(例: %hash) ○ {}の最後の文にはセミコロンがいらなかったり ○ 関数に渡す引数に括弧をつけなくても良かったり ○ 引数などを省略した場合、かってに$_という変数が使われたり ○ リストってのが、Cプログラマには直感的にわかりにくいかも Perlを初めてやったときは、暗黙了解、リスト、正規表現の使い方がかなりわかりませんでした。 でもそれさえわかれば、後はポケットリファレンスだけで、どんどん修行していけると思います。

meal
質問者

お礼

お返事が遅れてすみません。 ありがとうございました。 コテコテソースになってしまいましたが なんとかできました。 また宜しくお願いします。

その他の回答 (1)

  • alicia-y
  • ベストアンサー率40% (85/208)
回答No.1

($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time); @a = split('.', $i); $i = sprintf("%s%02d(月)%02d(日)%02d(時)%02d(分)%02d(秒).%s", $a[0], $mon, $mday, $hour, $min, $sec, $a[1]); とします。

meal
質問者

お礼

お返事が遅れてすみません。 どうもありがとうございました!

関連するQ&A

専門家に質問してみよう