如何使用空格分隔的文件中包含字符串的数组?

时间:2015-03-17 04:48:10

标签: perl

我有一个文件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>;

1 个答案:

答案 0 :(得分:1)

必须始终 use strictuse 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,
]