配列の右端の要素を保存するには??
[上に]
[前に]
[次に]
匿名
1999/06/18(金) 21:22:51
配列の一番右の要素をいったんはずしておいて、
文字を追加書き込みしてから、また一番右端にさっきの要素を追加したいです。
open(IN,"log.dat");
@lines = <IN>;
close(IN);
@lines = reverse(@lines);
($lines,@lines) = @lines;
@lines = ($lines,aaaaaa,@lines);
@lines = reverse(@lines);
open(IN,">log.dat");
print IN "@lines";
close(IN);
いまはこうやってリバースを二回使ってごまかしているのですが、
ログが多くなってくると恐ろしく負荷がかかりそうで心配です。
なにかスマートなやり方があったら教えてください。
お願いします。
じぇい
1999/06/18(金) 21:52:28
Perlには便利な関数がたくさん用意されています。(僕も初心者なんであんまり偉そうなことは言えませんが。)
http://www.tohoho-web.com/wwwperl2.htm#Array
ここを参照してみてください。
匿名
1999/06/18(金) 23:35:41
[[解決]]
お返事ありがとうございます。
@last = splice(@lines, -1);
@lines = (@lines,$new,@last);
としたらうまくいきました
じぇい
1999/06/18(金) 23:45:52
popとかpushとか使ったほうがいいことないですか、、?
ちなみに、
$hoge = pop @hoge;
とすると、
$hogeには、@hogeの最後の要素が入ります。
mm
1999/06/19(土) 01:43:20
push,pop以外の方法
1.splice(@lines,$#lines,0,$new);
2.@lines = (@lines[0..($#lines-1)],$new,$lines[$#lines]);
>($lines,@lines) = @lines;
って、prologかLispをやっておられるのですか?
[上に]
[前に]
[次に]