Perl 先頭行に追加
恐れ入ります。
Perlで、配列がカンマで区切られたデータを読み込み、
その先頭行にデータを挿入したいのですが、
中々うまくいきません。
データ(/data/xxx.txt)の中身は、
test,test2
bbb,bbb2
ccc,ccc2
という感じで、カンマで区切られて改行で並んでいます。
そこに新たに$dateと$contで受けたデータを先頭行に追加する感じです。
open(FILE,"<./data/xxx.txt");
while($temp = <FILE>){
@temp=split(/,/,$temp);
push(@ddr,"$temp[0]","$temp[1]");
}
seek(@ddr,0,0);
unshift(@ddr,($date,$cont."\n"));
open(FILE,">./data/xxx.txt");
$new=join(",",@ddr);
print FILE $new;
close(FILE);
このように書いていますが、
print FILE @ddr とすると、配列が壊れた状態(全て繋がる)で先頭行には挿入されたのですが、カンマで区切って配列にして並べようとしたら、
test,test2
,bbb,bbb2,
,,ccc,ccc2,,
という感じで上手く並びません。
よろしくおねがいします。
お礼
>10行目は、ファイル名がダブルクォートで括られていなかったときのために >ある処理です。 >fname はファイル名だとすると、拡張子の前にピリオドがあると想像 >できます。 >split() は、最後の "." の左と右のふたつに分割して、一気に >fname と ext2 に代入します なるほど、この辺がかなり??だったのですが、よく分かりました。 >17行目で ctype に代入をしていますね。「Content-type: なんとか」 >のなんとかの 部分を切り出して ctype に代入しようとしています。 う~ん、ここはファイルのタイプをその記述で取得できるってことなの でしょうね~。(かな?) かなり前進致しました。いつもいつも感謝致します! ありがとう、a-kumaさん!!