- 论坛徽章:
- 1
|
大家好,我最近在写Perl程序的时候遇到一个问题。这里写了一小段代码用来验证,麻烦请教一下,谢谢!- #!/usr/bin/perl -w
- use strict;
- my @array = qw/ file1 file2 /; #定义两个文件
- foreach (@array) {
- open FILE, "< $_" or die $!; #使用默认控制变量"$_"
- while (<FILE>) {
- print; #输出文件的每一行
- }
- }
- print "@array\n"; #打印文件列表
复制代码 执行程序,运行到最后提示:"Use of uninitialized value in join or string at a.pl line 10, <FILE> line 2."
根据提示是@array数组没定义,后来尝试换一种写法就可以通过。- #!/usr/bin/perl -w
- use strict;
- my @array = qw/ file1 file2 /; #定义两个文件
- my $file; #定义控制变量
- foreach $file (@array) {
- open FILE, "< $file" or die $!; #使用自定义控制变量"$file"
- while (<FILE>) {
- print; #输出文件的每一行
- }
- }
- print "@array\n"; #打印文件列表
复制代码 我个人的理解是,执行while循环的时候,Perl会保留foreach循环的"$_"变量的值,当while结束的时候还原"$_"变量。
为什么提示"Use of uninitialized value",麻烦请教一下,谢谢! |
|