• ベストアンサー

perlでのtext読み込み

perlで.txtファイルを読み込むのはどうすればいいのでしょうか? コマンドライン引数ではなくC言語でいうscanfのようにプログラム実行した後にtxtファイルを指定して読み込ませたいです。 わかる人がいたら教えてください、お願いしますm(_ _;m)

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

  • ベストアンサー
  • sample_
  • ベストアンサー率76% (20/26)
回答No.4

ファイルオープンと各行を読み込んで出力するならこんな感じですかね。 open関数は3引数、ベアワード抜きにしたいもんですね。 ------------------------------------------------------------ #!/usr/bin/perl use strict; use warnings; open my $fh, "<", "FileFullPath.txt" or die $!; while (my $line = <$fh>) { chomp($line); #行末の改行コードを削除する print $line, "\n"; } close $fh or die $!; おまけ。 プログラムの入り口で内部表現(utf8フラグ)に変換して受け取り 出口で元に戻したいよねぇーというなら --------------------------------------------------------------------------------- #!/usr/bin/perl use strict; use warnings; use utf8; use Encode; #テキストはutf8で書かれているとする。 open my $fh, "<:encoding(utf8)", "FileFullPath.txt" or die $!; while (my $line = <$fh>) { chomp($line); #行末の改行コードを削除する print encode_utf8($line), "\n"; } close $fh or die $!;

daikon999
質問者

お礼

回答ありがとうございます 解決しました!

その他の回答 (3)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.3

Perlの入門書や解説サイトを見たら、始めの方に出てきます。 テキスト読みこみ→加工はPerlの主戦場とも言えるところですから、解説の無い「入門書」など無いのでは?

daikon999
質問者

お礼

テキストを読みなおしました。 回答ありがとうございます

  • Gletscher
  • ベストアンサー率23% (1525/6504)
回答No.2

open(FILE,"file.txt"); @cDATA = <FILE>; close(FILE); これで@cDATAに配列で読み込まれるので、分解したければ以下を追加して$lineに取り込めば良いです。 foreach $line (@cDATA) {  $lineの処理 }

daikon999
質問者

お礼

回答ありがとうございます 解決しました!

回答No.1

超ざっくりで、こんな感じ? $a=<stdin>; chomp($a); open(fh , $a); while($line = <fh>) { print $line; }

daikon999
質問者

お礼

回答ありがとうございます 解決しました!

関連するQ&A