「みんな教えて! 選手権!!」開催のお知らせ

Cプログラミングの経験はあるのですがperlのソースを初めて
改造することになりました。

変数「$i」にはシェルのファイル名が入ります。
#FS000.csh
このファイル名に日付・時刻を付与して、
FS000mm(月)dd(日)hh(時)mm(分)ss(秒).csh
というファイル名にしたいのですが、どうしたらいいのでしょうか??

C言語だったら、配列を宣言して、その配列にファイル名を格納、という
書き方をしようかと思うのですが、
perlでの書き方がさっぱりわかりません・・・。
変数(C言語では配列)を定義したりしなくてもいいのでしょうか?

わかりにくい質問ですみませんがどうか宜しくお願いします!

A 回答 (2件)

Cとの違い



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

Perlを初めてやったときは、暗黙了解、リスト、正規表現の使い方がかなりわかりませんでした。
でもそれさえわかれば、後はポケットリファレンスだけで、どんどん修行していけると思います。
    • good
    • 0
この回答へのお礼

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

コテコテソースになってしまいましたが
なんとかできました。
また宜しくお願いします。

お礼日時:2002/06/13 10:59

($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]);
とします。
    • good
    • 0
この回答へのお礼

お返事が遅れてすみません。

どうもありがとうございました!

お礼日時:2002/06/13 11:01

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

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報