chomp给我1和0

air*_*net 2 perl

我有两段代码.第一个是我想要的.为什么它是第二个给我1和0(是我的英语正确,或者它是"1和0")而不是"johnchrismandy".


foreach (@data) {
    print ;
}
//output
john
chris
mandy


foreach  (@data) {
    print chomp ;
}
//output
110

更新::谢谢你们,我现在更了解它.但我不明白文档的最后部分.

=>你实际上可以选择任何左值的东西,包括一个赋值:chomp($ cwd = pwd);

ike*_*ami 6

这是记录在案的行为:"它返回从其所有参数中删除的字符总数." 你要

for (@data) {
   chomp;
   print "$_\n";
}
Run Code Online (Sandbox Code Playgroud)

请注意,它$_是元素的别名@data,因此@data也会被修改.如果你不希望这种情况发生.

for (@data) {
   my $item = $_;
   chomp($item);
   print "$item\n";
}
Run Code Online (Sandbox Code Playgroud)

关于文档的最后一行:

my $item = $_;返回$item作为左值(适合于一个值分配的EFT-手侧).因此,

my $item = $_;
chomp($item);
Run Code Online (Sandbox Code Playgroud)

可写成

chomp( my $item = $_ );
Run Code Online (Sandbox Code Playgroud)