【Perl】 chomp
chomp() は $/ に依存していると知れ!
mjd!
と思ってラクダ本を取り出した。(リファレンスではないところが素敵)
ラクダ本に
「$/」はreadline関数、<FH>演算子、chomp関数が参照すると記載されている。
ということは
■結果1 use 5.14.0; 2 use warnings; 3 4 { 5 say "--test1--"; 6 my $data1 = "Hello\n"; 7 chomp $data1; 8 print "[$data1]\n"; 9 10 open my $fh, '<', 'test.txt' or die; 11 my $data2 = readline $fh; 12 print "$data2\n"; 13 close $fh; 14 15 open IN, '<', 'test.txt' or die; 16 my $data3 = <IN>; 17 print "$data3\n"; 18 close IN; 19 say "--test1--"; 20 } 21 { 22 say "--test2--"; 23 local $/; 24 my $data1 = "Hello\n"; 25 chomp $data1; 26 print "[$data1]\n"; 27 28 open my $fh, '<', 'test.txt' or die; 29 my $data2 = readline $fh; 30 print "$data2\n"; 31 close $fh; 32 33 open IN, '<', 'test.txt' or die; 34 my $data3 = <IN>; 35 print "$data3\n"; 36 close IN; 37 say "--test2--"; 38 } 39 40 __END__ 41 test.txt 42 123 43 456 44 789 45
--test1--
[Hello]
123
123
--test1--
--test2--
[Hello
]
123
456
789
123
456
789
--test2--
こうなる。
うーむ、はまる。
--追記--
Perl5 において chomp() とはなにをするものか