改行コードから改行コードまでをスプリットして配列に取り込む方法を教えてください。
ファイル「sample.txt」の中に
文字列A
文字列B
文字列C
文字列D
文字列E
文字列F
文字列G
と書かれていたとします。このファイルを開き、配列@listに
@list = 文字列A\r\n文字列B\r\n文字列C\r\n,文字列D\r\n文字列E\r\n,文字列F\r\n文字列G\r\n
となるようなコードを教えてください。
要は二重改行コード\r\n\r\nをスプリッタとして複数の行を配列に取り込む方法です。
よろしくお願いします。
No.2
- 回答日時:
use strict;
use warnings;
use Data::Dumper;
my $file = shift || 'data.txt';
open my $fh, '<', $file or die "$!:$file";
my @list = ();
{
local $/ = "\x0D\x0A\x0D\x0A";
@list = <$fh>
};
close $fh or die "$!:$file";
print Dumper(@list);
No.5ベストアンサー
- 回答日時:
Windowsの場合、テキストモードだと、\r\n ⇒ \nの自動変換がなされてしまうので、その場合はNo.2さんのコードでopen時に:rawを指定すればいいと思います。
open my $fh, '<:raw', $file or die "$!:$file";
No.2さんのコードでは最後の文字列に二重改行が付いてしまいますが、質問文のように改行を1つだけにしたいならば、
chomp @list;
とすればいいと思います。
splitにこだわるならば、
my @list = split /(?<=\r\n)\r\n/, do{ local $/; <$fh> };
でいけると思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Java Javaの問題なのですが、「3文字以上の英数字文字列を入力し、文字列の中に文字(9)が出てくるまでの 1 2023/06/06 18:55
- その他(コンピューター・テクノロジー) googleスプレッドシートでカッコ内の文字数をカウントしたい 1 2023/01/17 15:52
- その他(プログラミング・Web制作) python質問 1 2023/08/14 11:54
- Visual Basic(VBA) excelにて、特定の列に数字入力してあれば、入力してある行コピーして 別ファイルに張り付ける 2 2022/08/11 05:33
- その他(プログラミング・Web制作) テキストエディタで複数行にわたる文字列の行頭に番号を振る方法 4 2023/03/11 12:57
- Visual Basic(VBA) Vbaで数式をポーランド記法に変換するコードを作って実行しようとするとフリーズします。 1 2022/05/24 17:53
- PHP SQLとPHPの連結方法がわからないのでアドバイスお願い致します 1 2022/07/12 12:16
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- C言語・C++・C# C#の問題です。 文字列型の配列 s[100] にキーボードから入力された100文字以内の文字列(単 2 2022/06/22 15:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
パイソンエラーについて
-
関数chop
-
プログラミング HSPの変数につ...
-
perlを使用しての特定行抽出に...
-
GDBでデバッグするとき文字列の...
-
リストデータの検索でのエラー...
-
Perl(Windows)の文法について
-
CSVファイルの中で、「 , 」カ...
-
エクセルで数値を全角文字(カ...
-
EXCELからCSVにすると余計なカ...
-
VBA 置換文字がみつからない時
-
マクロを使ってフォルダー内に...
-
VBA EXCEL あるセルの中の一...
-
「何とかで始まり、何とかで終...
-
pythonエラー
-
データにカンマが入ったCSVデー...
-
全角入力
-
英数字のみ全角から半角に変換
-
word差し込み印刷 半角カタカ...
-
[VBA][Excel]クリップボードか...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パイソンエラーについて
-
Perlで Right関数に近い処理を...
-
Malformed UTF-8 character
-
Perl(Windows)の文法について
-
日本語文字列の指定長(byte)切出し
-
splitの逆の処理
-
メールヘッダのMIMEエンコード...
-
数字を文字列に変換し短縮化する
-
Perl/Tk使用時のUTF-8コード文...
-
文字列と数字を含むセルから数...
-
GDBでデバッグするとき文字列の...
-
perlを使用しての特定行抽出に...
-
プログラミング HSPの変数につ...
-
perlで文字列を短く(圧縮)し...
-
関数chop
-
CSVファイルの中で、「 , 」カ...
-
英数字のみ全角から半角に変換
-
エクセルで数値を全角文字(カ...
-
EXCELからCSVにすると余計なカ...
-
住宅にカナを入力する際に丁目...
おすすめ情報