使用字段分隔符变量升级您的列表打印
在Perl中打印数组每个元素的典型方法是使用foreach循环
my @sportscar_brands = qw/Ferrari Aston_Martin Lambourgini/;
foreach my $brand (@sportscar_brands){
print "$brand\n";
}
# Ferrari
# Aston_Martin
# Lambourgini
另一种方法是设置输出字段分隔符变量($,)。当打印列表或数组时,Perl会在元素之间插入此变量。因此,如果您将输出字段分隔符设置为换行符(\n),您将实现与上一个示例相同的效果,而无需foreach循环。
$, = "\n"; # set the output field separator to newline
my @sportscar_brands = qw/Ferrari Aston_Martin Lambourgini/;
print @sportscar_brands;
# Ferrari
# Aston_Martin
# Lambourgini
输出字段分隔符也适用于列表
$, = "\n";
print qw/Ferrari Aston_Martin Lambourgini/;
# Ferrari
# Aston_Martin
# Lambourgini
还有一个名为列表分隔符的变量($“)。Perl在插值字符串中插入数组元素的值。这里的细微差别是,输出字段分隔符在打印时适用,而列表分隔符在插值字符串的上下文中适用于所有数组。例如
$" = "\n"; # set the list separator to newline
my @normalcar_brands = qw/Ford Honda Toyota Fiat/;
print @normalcar_brands; # not inside an interpolated string
# FordHondaToyotaFiat
print "@normalcar_brands" # works in interpolated string
# Ford
# Honda
# Toyota
# Fiat
my $separated_list_string = "@normalcar_brands"; # injects the separator
print $separated_list_string;
# Ford
# Honda
# Toyota
# Fiat
另一个额外的区别:尽管其名称如此,列表分隔符变量($“)在列表上不起作用,而输出字段分隔符($,)起作用(在Perl 5.16.3中)。
最后,如果您已设置$,和$”,并打印插值数组,$”将被插入,而$,将被忽略。
本文最初发布在PerlTricks.com上。
标签
反馈
这篇文章有什么问题吗?请帮助我们通过在GitHub上打开问题或拉取请求。