我有一个 Perl 脚本,它读取一个包含我的 SQL 文件的目录。
然后迭代这个数组并删除其中一个并将它们打印出来。
@sqlArray = glob('C:/Users/Geeks/Folder/*.sql');
print Dumper(@sqlArray );
if( $company ne 'Geeks'){
my $index = 0;
my $count = scalar @sqlArray ;
$index++ until $sqlArray [$index] eq 'factura.sql' or $index==$count;
splice(@sqlArray , $index, 1);
}
print Dumper(@sqlArray );
Run Code Online (Sandbox Code Playgroud)
我收到以下错误,我不知道它是怎么来的以及如何修复它?
Use of uninitialized value within @sqlArray in string eq at /.../software/Queries.pl line 97.
Run Code Online (Sandbox Code Playgroud)
欢迎任何想法,并提前致谢。
问题是您访问了数组末尾之外的一个元素。该数组的scalar(@sqlArray)
元素编号从0
to @sqlArray-1
(又名$#sqlArray
),但您可以进一步访问。
当您想从数组中删除元素时,请考虑grep
.
@sqlArray = grep { $_ ne 'factura.sql' } @sqlArray
if $company ne 'Geeks';
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
83 次 |
最近记录: |