muh*_*ana 1 arrays string io perl daemon
我有一个数组,@address其零元素包含一些字符串。我找不到使用 @array 作为参数的示例菱形运算符。(它如何“拆分”字符串?)
use Mojo::Loader qw/ data_section /;
my @address = data_section 'main', 'address_strings';
while( my $line = <@address> ) {
print $line;
}
1;
__DATA__
@@ address_strings
"010101, ??? ???., ?. ?????????, ???. ???, ???. 0101, 01"
"020202, ??? ???., ??? ?????, ???? ???, ?????? ???, ??????? 01"
"030303, ?.???, ??? ?-?, ???. ???, ???.01, ???? 01"
Run Code Online (Sandbox Code Playgroud)
UPD
从 doc<>运算符读取允许 GLOB 或文件句柄,但在我的情况下,这只是一个 string 的数组。
my @arr = <<TEXT;
many
lines
TEXT
while( my $line = <@arr> ) {
print ">>$line<<\n";
}
Run Code Online (Sandbox Code Playgroud)
请问<>这种情况下做些什么魔法?你可以注意到,线条被分割了
那是......不是菱形运算符所做的,这就是为什么你找不到任何例子。
你只需要:
foreach my $line ( @address ) {
print $line;
}
Run Code Online (Sandbox Code Playgroud)
该<>表示从一个文件句柄读,@address不是一个文件句柄。它甚至不是文件句柄数组。
理论上你可以做
while ( my $line = <DATA> ) {
print $line;
}
Run Code Online (Sandbox Code Playgroud)
因为DATA是文件句柄,所以<>触发从该文件句柄读取的单个记录。(记录边界默认为换行,但您可以更改$/)
考虑到您使用 Mojo 做什么,这没有意义,我只是将其作为它应该如何工作的示例。