- 論壇徽章:
- 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"; #打印文件列表
復制代碼 執(zhí)行程序,運行到最后提示:"Use of uninitialized value in join or string at a.pl line 10, <FILE> line 2."
根據(jù)提示是@array數(shù)組沒定義,后來嘗試換一種寫法就可以通過。- #!/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"; #打印文件列表
復制代碼 我個人的理解是,執(zhí)行while循環(huán)的時候,Perl會保留foreach循環(huán)的"$_"變量的值,當while結(jié)束的時候還原"$_"變量。
為什么提示"Use of uninitialized value",麻煩請教一下,謝謝! |
|