- ベストアンサー
ファイルの内容をスカラー変数に入れるには?
ファイルの内容をスカラー変数に入れる標準的な書き方ってありますでしょうか? a b c のような内容のtemp.txtの中身を$contentに $content="a\nb\nc\n"; のように代入したく、以下のようにしたのですが、もっとすっきり書けないものかな?と思いまして。それともこんなもんでしょうか?ご教授いただけると嬉しいです。 my $content; open (IN, "temp.txt"); while (<IN>){ $content.=$_; } close (IN);
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
my $content; open (IN, "temp.txt"); { local $/ = undef; $content=<IN>; } close (IN);
その他の回答 (1)
- SE-1
- ベストアンサー率57% (26/45)
回答No.1
my $content; open (IN, "temp.txt"); undef $/; $content=<IN>; close (IN);
質問者
お礼
ありがとうございます。 初め $content=<IN>; としたら初めの1行しか入らなかったので困ったのですが、 undef $/; として入力レコードの区切り文字(デフォルトは改行文字) を無効にすればよいのですね。 ありがとうございました。
お礼
なるほど。 { local $/ = undef; $content=<IN>; } こうして、グローバル変数の$/をローカルに無効にして以下に影響を与えないようにしているのですね。 とても参考になりました。 ありがとうございました。