【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() とはなにをするものか