Arrays 借助循环来声明数组的perl代码
我想在运行循环时声明数组。我被它困住了。我不知道怎么做Arrays 借助循环来声明数组的perl代码,arrays,perl,Arrays,Perl,我想在运行循环时声明数组。我被它困住了。我不知道怎么做 当我的程序进入for循环时,我希望它自己声明一个数组,并在其中存储特定的值。例如: #!/bin/usr/perl -w use strict; open(R1,"$file") || die ("error"); while (my $line=<R1>) { my $m=0; for ( m
当我的程序进入for循环时,我希望它自己声明一个数组,并在其中存储特定的值。例如:
#!/bin/usr/perl -w
use strict;
open(R1,"$file") || die ("error");
while (my $line=<R1>) {
my $m=0;
for ( my $i=0 ; $i < my $l ; $i++ ){
##here i want to declare an array.
Such that each array stores each line from the file.
}
输出:
array 1: 1 3
array 2: 4 6
array 3: 5 1
array 4: 3 5
我希望每次都将文件中的每一行存储在一个新数组中,因为我以后将在程序中使用这些数组。程序每次都应该声明每个数组。我想你要问的是根据用户输入动态创建数组(或者在你的情况下说行数)。马克·多米努斯(MarkDominus)是《高阶Perl》(Higher Order Perl)一书的作者,他已经详细解释了陷阱,请查看参考资料 参考资料:
我认为您要问的是根据用户输入(或者在您的情况下,说行数)动态创建数组。马克·多米努斯(MarkDominus)是《高阶Perl》(Higher Order Perl)一书的作者,他已经详细解释了陷阱,请查看参考资料 参考资料:
我认为您要问的是根据用户输入(或者在您的情况下,说行数)动态创建数组。马克·多米努斯(MarkDominus)是《高阶Perl》(Higher Order Perl)一书的作者,他已经详细解释了陷阱,请查看参考资料 参考资料:
我认为您要问的是根据用户输入(或者在您的情况下,说行数)动态创建数组。马克·多米努斯(MarkDominus)是《高阶Perl》(Higher Order Perl)一书的作者,他已经详细解释了陷阱,请查看参考资料 参考资料:
我认为您并不是真的想要为输入文件的每一行声明一个数组。如果希望数据可用于进一步处理,只需将其读入ArrayRef数组即可。下面是一些示例代码
#!/usr/bin/env perl
use strict;
use warnings;
use Data::Dumper;
my $file = 'file1.txt';
open( R1, "$file" ) or die "error reading $file: $!";
my @result; # this array will hold referenced to the individual lines
while ( my $line = <R1> ) {
chomp $line; # get rid of trailing newline
my @fields = split m/\s+/, $line;
push @result, \@fields;
}
close R1;
print Dumper( \@result ); # show the data structure
# print the desired output
my $linenum = 1;
for my $array_ref (@result) {
print "array $linenum: ", join( ' ', @{$array_ref} ), "\n";
$linenum++;
}
#/usr/bin/env perl
严格使用;
使用警告;
使用数据::转储程序;
my$file='file1.txt';
打开(R1,“$file”)或死亡“读取$file:$!”时出错;
我的@result;#此数组将保留对单个行的引用
while(我的$line=){
chomp$line;#去掉尾随的换行符
my@fields=split m/\s+/,$line;
推送@result,\@字段;
}
关闭R1;
打印转储程序(\@result);\显示数据结构
#打印所需的输出
我的$linenum=1;
对于我的$array\u ref(@result){
打印“array$linenum:”,join(“”,@{$array\u ref}),“\n”;
$linenum++;
}
对于这类任务,您可能还希望查看CPAN模块,如,我认为您并不是真的希望为输入文件的每一行声明一个数组。如果希望数据可用于进一步处理,只需将其读入ArrayRef数组即可。下面是一些示例代码
#!/usr/bin/env perl
use strict;
use warnings;
use Data::Dumper;
my $file = 'file1.txt';
open( R1, "$file" ) or die "error reading $file: $!";
my @result; # this array will hold referenced to the individual lines
while ( my $line = <R1> ) {
chomp $line; # get rid of trailing newline
my @fields = split m/\s+/, $line;
push @result, \@fields;
}
close R1;
print Dumper( \@result ); # show the data structure
# print the desired output
my $linenum = 1;
for my $array_ref (@result) {
print "array $linenum: ", join( ' ', @{$array_ref} ), "\n";
$linenum++;
}
#/usr/bin/env perl
严格使用;
使用警告;
使用数据::转储程序;
my$file='file1.txt';
打开(R1,“$file”)或死亡“读取$file:$!”时出错;
我的@result;#此数组将保留对单个行的引用
while(我的$line=){
chomp$line;#去掉尾随的换行符
my@fields=split m/\s+/,$line;
推送@result,\@字段;
}
关闭R1;
打印转储程序(\@result);\显示数据结构
#打印所需的输出
我的$linenum=1;
对于我的$array\u ref(@result){
打印“array$linenum:”,join(“”,@{$array\u ref}),“\n”;
$linenum++;
}
对于这类任务,您可能还希望查看CPAN模块,如,我认为您并不是真的希望为输入文件的每一行声明一个数组。如果希望数据可用于进一步处理,只需将其读入ArrayRef数组即可。下面是一些示例代码
#!/usr/bin/env perl
use strict;
use warnings;
use Data::Dumper;
my $file = 'file1.txt';
open( R1, "$file" ) or die "error reading $file: $!";
my @result; # this array will hold referenced to the individual lines
while ( my $line = <R1> ) {
chomp $line; # get rid of trailing newline
my @fields = split m/\s+/, $line;
push @result, \@fields;
}
close R1;
print Dumper( \@result ); # show the data structure
# print the desired output
my $linenum = 1;
for my $array_ref (@result) {
print "array $linenum: ", join( ' ', @{$array_ref} ), "\n";
$linenum++;
}
#/usr/bin/env perl
严格使用;
使用警告;
使用数据::转储程序;
my$file='file1.txt';
打开(R1,“$file”)或死亡“读取$file:$!”时出错;
我的@result;#此数组将保留对单个行的引用
while(我的$line=){
chomp$line;#去掉尾随的换行符
my@fields=split m/\s+/,$line;
推送@result,\@字段;
}
关闭R1;
打印转储程序(\@result);\显示数据结构
#打印所需的输出
我的$linenum=1;
对于我的$array\u ref(@result){
打印“array$linenum:”,join(“”,@{$array\u ref}),“\n”;
$linenum++;
}
对于这类任务,您可能还希望查看CPAN模块,如,我认为您并不是真的希望为输入文件的每一行声明一个数组。如果希望数据可用于进一步处理,只需将其读入ArrayRef数组即可。下面是一些示例代码
#!/usr/bin/env perl
use strict;
use warnings;
use Data::Dumper;
my $file = 'file1.txt';
open( R1, "$file" ) or die "error reading $file: $!";
my @result; # this array will hold referenced to the individual lines
while ( my $line = <R1> ) {
chomp $line; # get rid of trailing newline
my @fields = split m/\s+/, $line;
push @result, \@fields;
}
close R1;
print Dumper( \@result ); # show the data structure
# print the desired output
my $linenum = 1;
for my $array_ref (@result) {
print "array $linenum: ", join( ' ', @{$array_ref} ), "\n";
$linenum++;
}
#/usr/bin/env perl
严格使用;
使用警告;
使用数据::转储程序;
my$file='file1.txt';
打开(R1,“$file”)或死亡“读取$file:$!”时出错;
我的@result;#此数组将保留对单个行的引用
while(我的$line=){
chomp$line;#去掉尾随的换行符
my@fields=split m/\s+/,$line;
推送@result,\@字段;
}
关闭R1;
打印转储程序(\@result);\显示数据结构
#打印所需的输出
我的$linenum=1;
对于我的$array\u ref(@result){
打印“array$linenum:”,join(“”,@{$array\u ref}),“\n”;
$linenum++;
}
对于这类任务,您可能还需要查看CPAN模块,如这不是实际的脚本。文件是什么样子的?期望的结果是什么?我希望我已经让您理解了程序的逻辑。这不是实际的脚本。文件是什么样子的?期望的结果是什么?我希望我已经让您理解了程序的逻辑。这不是实际的脚本。文件是什么样子的?期望的结果是什么?我希望我已经让您理解了程序的逻辑。这不是实际的脚本。文件是什么样子的?期望的结果是什么?我希望我已经让您理解了程序的逻辑。这对进一步处理没有帮助