我有一个文件perl_script_2_out_2.txt
,我希望将所有字符串用空格分隔在数组@arr
中。
我写了这段代码但是没有用。
open my $FILE4, '<', 'perl_script_2_out_2.txt' or die $!;
my @array4 = <FILE4>;
close($FILE4);
open my $FILE5, '>', 'perl_script_2_out_2.txt' or die $!;
foreach $_ (@array4) {
s/\s+/\n/g;
print $FILE5 "$_";
}
close($FILE5);
open my $FILE6, '<', 'perl_script_2_out_2.txt' or die $!;
@arr = <$FILE6>;
答案 0 :(得分:1)
您必须始终 use strict
和use warnings
位于您编写的每个Perl程序的顶部。在这种情况下,您会看到消息
Name "main::FILE4" used only once: possible typo
指向声明
my @array4 = <FILE4>
并帮助您查看已打开文件句柄$FILE4
,但尝试阅读FILE4
,这是不同的。
如果你修复了那么你的代码就会起作用,但这是一种奇怪的做事方式,而且这样更好。我用Data::Dump
来显示数组的最终内容;程序没有必要工作。
use strict;
use warnings;
open my $fh, '<', 'perl_script_2_out_2.txt' or die $!;
my @arr;
while (<$fh>) {
push @arr, split;
}
use Data::Dump;
dd \@arr;
<强>输出强>
[
"uart_1_baddress",
2211,
"uart_2_baddress",
3344,
"uart_3_baddress",
2572,
]