菱形运算符如何使用数组作为参数

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)

请问<>这种情况下做些什么魔法?你可以注意到,线条被分割了

Sob*_*que 5

那是......不是菱形运算符所做的,这就是为什么你找不到任何例子。

你只需要:

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 做什么,这没有意义,我只是将其作为它应该如何工作的示例。