Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 借助循环来声明数组的perl代码_Arrays_Perl - Fatal编程技术网

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模块,如

    这不是实际的脚本。文件是什么样子的?期望的结果是什么?我希望我已经让您理解了程序的逻辑。这不是实际的脚本。文件是什么样子的?期望的结果是什么?我希望我已经让您理解了程序的逻辑。这不是实际的脚本。文件是什么样子的?期望的结果是什么?我希望我已经让您理解了程序的逻辑。这不是实际的脚本。文件是什么样子的?期望的结果是什么?我希望我已经让您理解了程序的逻辑。这对进一步处理没有帮助