我的代码看起来像这样:
my @street = qw(
examplestreet
example street
);
foreach my $str (@street) {
print "$str\n";
}
Run Code Online (Sandbox Code Playgroud)
输出很明显
examplestreet
example
street
Run Code Online (Sandbox Code Playgroud)
但我希望它是
examplestreet
example street
Run Code Online (Sandbox Code Playgroud)
问题:我可以修改qw()so 的行为,它只用换行符分隔,而不是用空格分隔吗?
Ps:
为什么我这样做:获得了大量条目,最简单的方法就是将它们逐行复制粘贴到代码中.这只是一个小小的剪辑,不值得任何努力.如果我找不到解决方案,我将为数据制作单独的文件并将其读入脚本.但捷径会很棒!(或者我应该尝试一下__DATA__吗?不知道如何实现这一点......)当前的Perl是v5.20.1
cho*_*oba 10
您无法更改行为qw,但您可以使用HERE文档:
my @streets = split /\n/, << '__LINES__';
examplestreet
example street
__LINES__
print "<$_>\n" for @streets;
Run Code Online (Sandbox Code Playgroud)
HERE文档始终是单个字符串,因此您必须将其拆分为换行符.
使用DATA也可能,但只有当只需要一个这样的部分时(并且你不想使用Data :: Section):
my @streets = <DATA>;
chomp @streets; # This time, we have to remove the newlines from the strings.
print "<$_>\n" for @streets;
__DATA__
examplestreet
example street
Run Code Online (Sandbox Code Playgroud)