CGI-BBS > CGI > Perl > データ前に半角スペースが入る?


カレッヂ
カレッヂ


質問者 さち  投稿日 3/19(月) 10:20:45
いつも、お世話になってます
また、つまずいてしまいました、、^_^;


以下のような、Perlスクリプトを書いた場合ですが
新しいデータの前に$newdetaと同じサイズ+1コの半角スペースが入ってしまいます
違うサーバで試した所、入りません、なぜだかわかりません
(入るサーバーは、リムネットです)
よろしくお願いします


$mylock    = '1';
$firu = './test.txt';
$newdeta = 'test';
        if (!open(TXT, ">>$firu")) {
            print "オープンできません1";
            exit(0);
        }
        if (!&lock_file(OUT)) {
            print "オープンできません2";
            exit(0);
        }
        print TXT "$newdeta\n";
    truncate(TXT, tell(TXT));
        &unlock_file(TXT);
        close (TXT);
print "content-type: text/html\n\n";
print "<html>\n<head>\n";
print "テスト";
print "</body>\n</html>\n\n";
exit(0);
#-------ロックルーチン------------------#
sub lock_file {
    local(*FILE) = @_;
    if ($mylock) {eval("flock(FILE, 2)");
    if ($@) {return 0;}}return 1;
}
sub unlock_file {
    local(*FILE) = @_;
    if ($mylock) {eval("flock(FILE, 8)");}
}
######以上です###########
回答者 しあわせのツボ  [削除]  投稿日 3/19(月) 17:33:05
解決になるかどうかはわかりませんが、追記時にtruncateは必要ないと思います。
質問者 さち  [削除]  投稿日 3/19(月) 17:48:29
いつもありがとうございます
ほんとです!!
truncate(TXT, tell(TXT));
を、削除すると半角スペースが入らなくなりました
ありがとう御座いました。
でも、なぜでしょうか?

質問者 さち  [削除]  投稿日 3/19(月) 17:57:34
いやー、御免なさい
ファイルを >>で開いているので
truncate(TXT, tell(TXT));
は、まったく必要ないんですね
ありがとう、御座いました。

返信(回答)する


Web裏技