• ベストアンサー

ファイルの内容をスカラー変数に入れるには?

ファイルの内容をスカラー変数に入れる標準的な書き方ってありますでしょうか? a b c のような内容のtemp.txtの中身を$contentに $content="a\nb\nc\n"; のように代入したく、以下のようにしたのですが、もっとすっきり書けないものかな?と思いまして。それともこんなもんでしょうか?ご教授いただけると嬉しいです。 my $content; open (IN, "temp.txt"); while (<IN>){ $content.=$_; } close (IN);

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

my $content; open (IN, "temp.txt"); { local $/ = undef; $content=<IN>; } close (IN);

HoComeCome
質問者

お礼

なるほど。 { local $/ = undef; $content=<IN>; } こうして、グローバル変数の$/をローカルに無効にして以下に影響を与えないようにしているのですね。 とても参考になりました。 ありがとうございました。

その他の回答 (1)

  • SE-1
  • ベストアンサー率57% (26/45)
回答No.1

my $content; open (IN, "temp.txt"); undef $/; $content=<IN>; close (IN);

HoComeCome
質問者

お礼

ありがとうございます。 初め $content=<IN>; としたら初めの1行しか入らなかったので困ったのですが、 undef $/; として入力レコードの区切り文字(デフォルトは改行文字) を無効にすればよいのですね。 ありがとうございました。

関連するQ&A