在我的代码中,我分配了一个变量 disc 以等于disc
我的 linux 系统上命令的结果。这将输出字符串 RESEARCH
my $disc = `disc`;
print "$disc\n";
$disc = chomp($disc);
print "$disc\n";
但是,当我使用 chomp 从字符串中删除换行符时,它会将字符串更改为 1。这是输出
RESEARCH
1
到底是怎么回事?
chomp VARIABLE
chomp( LIST )
chomp This safer version of "chop" removes any trailing string that
corresponds to the current value of $/ (also known as
$INPUT_RECORD_SEPARATOR in the "English" module). It returns the
total number of characters removed from all its arguments.
正确的用法是简单地提供一个将就地更改的变量或列表。返回值,即您使用的值,是它“压缩”其参数列表的次数。例如
chomp $disc;
甚至:
chomp(my $disc = `disc`);
例如,您可以 chomp 整个数组或列表,例如:
my @file = <$fh>; # read a whole file
my $count = chomp(@file); # counts how many lines were chomped
当然,对于单个标量参数,chomp 返回值只能是 1 或 0。
避免将 chomp 结果分配给您的变量:
$disc = chomp($disc);
采用:
chomp($disc);
这是因为 chomp 修改了给定的字符串并返回从其所有参数中删除的字符总数
使用chomp $disc
时不要做作,因为chomp返回删除的字符数。