Cai*_*lin 1 csv arrays perl file-writing
我在网上搜索和搜索,但我做的一切似乎都没有用.我知道这是一个愚蠢的简单问题,但我真的被卡住了......
我有一个文件目录,并将目录的名称保存到CSV文件中.它只是由一列数据组成,例如:
100
101
102
103...
Run Code Online (Sandbox Code Playgroud)
我使用以下代码创建文件(以防万一相关):
open (my $fileh, '>', '/Users/Shared/serials.csv') or die "Could not open file!";
print $fileh `ls -1 $path`;
close $fileh;
print "Saved Serials!";
Run Code Online (Sandbox Code Playgroud)
现在我想要的是将文件中的数据读入一个数组,然后遍历每个值来完成一个任务.我无法弄清楚如何做到这一点......
目前我在代码中手动输入数字到数组中,如:
@ser_list = (100,101,102,103,...);
Run Code Online (Sandbox Code Playgroud)
如上所述,我想要使用ls命令行查询自动写入文件名(数字),然后从那里将它们读回脚本.如果有一种方法可以做到这一点,而无需创建一个单独的值文件,这将是伟大的.
该示例中的数组称为@ser_list,从那里我将从数组中读取下一个$ ser_num并在循环中使用它.
foreach $ser_num (@ser_list) {....}
Run Code Online (Sandbox Code Playgroud)
提前感谢大家的帮助和耐心!
不要ls在Perl程序中使用.您可以使用glob代替:
my @files = glob "$path/*";
Run Code Online (Sandbox Code Playgroud)
如果需要使用路径和文件名,请检查Path :: Tiny.
要读取包含数组路径的行,只需使用
open my $fh, '<', $filename or die $!;
chomp( my @paths = <$fh> );
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅open,chomp和readline.