![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
perlにてテキスト書き出しをしをしたとき
書き出したテキストファイルの先頭にどうしてもスペースが入ってしまうので
そのテキストを別のcgiにて読み込み表示するときに
先頭のスペースを削除しようとしていますがうまく行きません
多分スペースをパターンマッチさせるのだろうと思うのですが
いまいち私の理解が足らないようでぜひどなたか教えてください。
(1つ目のcgi)-------------------------------
フォームから入力$title $subtitle $contentsとしそれを下記のような形で読み込み(途中省略)
use CGI;
$query = new CGI;
$title = $query->param('title');
$subtitle = $query->param('subtitle');
$content = $query->param('content');
#タブ区切りにし@memoryに代入
@memory="$meday\t$title\t$subtitle\t$content\t$number\t$namberc\n";
open(FILE,">>../data/memory.txt")||&error("$datafile 外部ファイルが開きませんでしたエラー");
print FILE"@memory";
close(FILE);
-----------------------------
それを違うcgiのソースで読み込み------------------------------------
(2つ目のcgi)
open(IN, "< sys/data/memory.txt");
eval{flock(IN,1)};
@inbun=<IN>;
for($i=0;$i<@inbun;$i++){
@retudata=split(/\t/,$inbun[$i]);
$inbun[$i] =~ s/^\s+//g;
$retu =~ s/^\s+//g;
@retudata[$i]='$retu[0]\t$retu[1]\t$retu[2]\t$retu[3]\t$retu[4]\t$retu[5]\n';
;
}@data=@inbun;
open(FILE,">sys/data/memory.txt")||&error("../data/memory.txt 外部ファイルが開きませんでしたエラー");
print FILE"@data";
close(FILE);
close (IN);
---------------------------------------------------
追加するとなぜか先頭にスペースが入りどうしてもとれないんですが
どうしたら良いでしょうか?
ちなみに結果は下記のとおりです。
20121122test1test1test1あいうえおABCDEFG1112223157
20121122test2-rtest2-rtest2-rあいうえおABCDEFG21122231647
20121122test3test3test3あいうえおABCDEFG3112223254
乱筆乱文ご容赦ください。
宜しくお願いします。
No.1ベストアンサー
- 回答日時:
> print FILE "@memory";
> ...
> print FILE "@data";
ダブルクォート文字列の中で配列を展開すると間に半角スペースを挟むので、配列が行で構成されている場合は2行目以降の先頭にスペースが付くことになります。他の部分にも多少問題がありそうなコードですが、とりあえず次のようにしてみては ... ?
print FILE @memory;
...
print FILE @data;
No.2
- 回答日時:
あるいは、joinを使って区切り文字を明示して連結した文字列にするか。
print FILE join('',@data);
>eval{flock(IN,1)};
なんでevalするの?
> @memory="$meday\t$title\t$subtitle\t$content\t$number\t$namberc\n";
リストにスカラー代入してますけど?
> @retudata=split(/\t/,$inbun[$i]);
> $inbun[$i] =~ s/^\s+//g;
@retudataを作った後$inbun[$i]を変更しても@retudataに影響はありません。
> $retu =~ s/^\s+//g;
$retuはどこ?
先の「@retudata=split(/\t/,$inbun[$i]);」が「@retu=split(/\t/,$inbun[$i]);」の間違いみたいだけど
そうだとしても @retu と $retu とは別です。
また、このようなやりかたで@retuの全てを変更することはできません。
いろいろ出来てない部分がおおくてすいません
見直すとそのとうりでした
助かりました
むだなソースがおおくてすいませんでした。
まことにありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- Perl perlのflock関数でロックをかけたままopen関数で何度もファイルを開きなおすことはできますか 3 2023/05/01 22:25
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- その他(プログラミング・Web制作) Fortranでの出力ファイル 2 2023/03/21 21:25
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- その他(プログラミング・Web制作) pythonのこのエラーがわかりません 3 2022/11/16 14:54
- C言語・C++・C# pythonのファイルの並びでの読み込みとリストについて 4 2022/04/13 03:52
- その他(プログラミング・Web制作) Python - Excel で Webからデータを連続取得したいのですが エラーが出ます 1 2023/07/06 20:08
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- Ruby パイソンでテキストファイルが読み込めない 1 2022/11/14 16:42
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
perlでcsvファイルを読む(ダブ...
-
Perlで特定行から特定行までを...
-
パイソンでCSVファイル場所を指...
-
Argument "\\\\n" isn't numeri...
-
FindFirstFileとFindNextFileで...
-
ExcelをCSV書き出す場合のシー...
-
perlにて2つのファイル比較
-
ファイル名を複数個配列で確保...
-
バッチファイルの作り方(CSV→...
-
Windowsで複数のファイルを同じ...
-
Perl:Unicodeプロパティ作れない
-
perlで、後ろの行を読んで、前...
-
VBAで巨大なファイルの途中から...
-
fopenでディレクトリ内の全ファ...
-
awkスクリプトでダブルクォーテ...
-
batファイルでrenameができませ...
-
python renameについて
-
DOSコマンドで、標準出力を出力...
-
close()で例外が投げられる理由
-
window.open でのファイル指定方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Perlで特定行から特定行までを...
-
Perlの初心者です。2重ループ...
-
perlでcsvファイルを読む(ダブ...
-
Argument "\\\\n" isn't numeri...
-
perlにてスペースの削除に苦労...
-
Java CSVファイルをカンマごと...
-
Perl初心者です。同一データを...
-
ファイルの3行目までを出力したい
-
先頭の単語が一致した時のデー...
-
FTP接続時失敗時、接続先名をcs...
-
MATLAB std::exceptionエラー
-
データファイルからのデータの...
-
エラーチェック、ファイルに特...
-
cgiのログの書き方
-
外部ファイルからの指定行と指...
-
CSVファイルをperlプログラムで...
-
Perlで空白行を削除
-
CSVファイルのデータの行数を取...
-
perl:パターンマッチを使ったif...
-
perlでファイルの比較
おすすめ情報