![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
モノの本によるとファイルを開く際にファイル入出力記号を +> にすると、追加書き込みは出来ないものの、読み取り、書き込み、新規作成、上書きが出来るとのこと。
ファイルからデータを読み込んで、読み込んだ内容を加工して、すぐにファイルに保存する用途に最適だなと思いましたが、実際に使ってみると読み出しをしてくれません。
何がいけないのでしょうか。
my @s;
my @t=('a','b');
open IO,'+>test.txt';
@s=<IO>;
print "\$@の要素数は ".@s."個\n";
for(@t) {
print IO $_."\n";
}
close IO;
No.1ベストアンサー
- 回答日時:
「モノの本」とやらの記述で疑問が湧いたら、まずはマニュアルを良くよみましょう。
http://perldoc.jp/func/open
> MODE が > の場合、ファイルは出力用に開かれ、既にファイルが ある場合は切り詰められ(上書きされ)、ない場合は新しく作られます。
> ファイルに読み込みアクセスと書き込みアクセスの両方をしたいことを示すために、 > や < の前に + を付けることができます: (略)-- +> モードはまずファイルを上書きします。
この回答への補足
ありがとうございます。
これは如何でしょうか。
test.txtを開いてみると、確かに@tの内容で上書きされています。
しかしそれを@sが読み込んでくれません。
<IO>がファイル読み込み時のデータを意味するなら、test.txtは上書きされるのですから、@sに何も入っていないのは当然です。しかしそれなら +> は > とまるで変わらないのではないでしょうか。
my @s;
my @t=('a','b');
open IO,'+>test.txt';
for(@t) {
print IO $_."\n";
}
@s=<IO>;
print "\$@の要素数は ".@s."個\n";
close IO;
ありがとうございます。
おかげさまで +>だけでなく、+<、>>、+>> の違いもよく理解できました。
どちらも貴重なアドバイスになったのですが、ベストアンサーは一つしかつけられないので、文字数で、No.1の方とさせていただきます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- ドライブ・ストレージ SSDを追加したら昔のHDDがおかしくなった 4 2023/03/23 13:25
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- C言語・C++・C# c言語の問題です 2 2023/07/21 10:51
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- Word(ワード) PCで作ったwordをスマホで編集しようとすると「このファイルは読み取り専用です。」と表示される。 3 2023/05/30 14:51
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PostgreSQL ポストグレにあるExcelファイルを開くには 1 2022/12/13 18:07
- システム 外付けHDDの初期化について 4 2023/03/05 21:19
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
共有フォルダに誰が何にアクセ...
-
【Excel】[Expression.Error] ...
-
Batch: フォルダ内の特定のファ...
-
特定のエクセルファイルを起動...
-
【アクセス】「ほかのユーザー...
-
mdbファイル フォームを開くと...
-
VBAでCSVファイルが使用中かど...
-
tmpファイル なぜできる?削除...
-
相手のPCにVBAからメッセ...
-
特定のフォルダに入れたファイ...
-
AccessVBAで作成したExcelファ...
-
(Excelマクロ)datファイルをエ...
-
Excelでデータを抽出するに良い...
-
テキスト内容の削除方法
-
月が変わったら自動でシートが...
-
拡張子が「cda」のファイルを聞...
-
共有フォルダのアクセスログに...
-
ACCESS リンクテーブルのEXCEL...
-
Accessのエラー対処法
-
phpで連番
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【Excel】[Expression.Error] ...
-
共有フォルダに誰が何にアクセ...
-
特定のエクセルファイルを起動...
-
VBAでCSVファイルが使用中かど...
-
Batch: フォルダ内の特定のファ...
-
(Excelマクロ)datファイルをエ...
-
月が変わったら自動でシートが...
-
mdbファイル フォームを開くと...
-
tmpファイル なぜできる?削除...
-
AccessVBAで作成したExcelファ...
-
ファイルの途中に文字列を挿入
-
Access VBA を利用して、フォル...
-
excelを共有ファイルにすると行...
-
拡張子が「cda」のファイルを聞...
-
Excel VBA 処理後データが重た...
-
【アクセス】「ほかのユーザー...
-
社内Excel共有ブックでの保存ト...
-
大量のCSVデータを行列の変換を...
-
XMLデータを変換し印刷する方法
-
Dream weaverで、誤ってファイ...
おすすめ情報