插入数组perl的数组

插入数组perl的数组,perl,Perl,我有一个数组 @data = [["Hi", "Hello"],["Apple", "Orange"]]; 我需要插入一个新数组 @a=[“a”,“b”] 我希望数组@data如下所示 @data = [["Hi", "Hello"],["Apple", "Orange"], ["a", "b"]]; 我该怎么做?当你打字时 [ "foo", "bar", "base" ] 它不是一个简单的数组,而是对数组的引用: my $ref = [ "foo", "bar", "base" ]; p

我有一个数组

@data = [["Hi", "Hello"],["Apple", "Orange"]];
我需要插入一个新数组

@a=[“a”,“b”]

我希望数组@data如下所示

@data = [["Hi", "Hello"],["Apple", "Orange"], ["a", "b"]];
我该怎么做?

当你打字时

[ "foo", "bar", "base" ]
它不是一个简单的数组,而是对数组的引用:

my $ref = [ "foo", "bar", "base" ];
print $ref;
按示例显示:

ARRAY(0x1d79cb8)
将一个简单数组
@array
分配给此简单列表:

仍在使用引用:

use Data::Dumper;

# Using $array_ref to store the reference.
# There's no reason to use an @array to store a
# memory address string...
$array_ref = [["Hi", "Hello"],["Apple", "Orange"]];

# Pushing in the dereferenced array ref
push @$array_ref,  ["a", "b"];

# Let's the doctor take a look in this body
print Dumper $array_ref;
输出

$VAR1 = [
          [
            'Hi',
            'Hello'
          ],
          [
            'Apple',
            'Orange'
          ],
          [
            'a',
            'b'
          ]
        ];
似乎是你所期待的,不是吗


键入时请参见

[ "foo", "bar", "base" ]
它不是一个简单的数组,而是对数组的引用:

my $ref = [ "foo", "bar", "base" ];
print $ref;
按示例显示:

ARRAY(0x1d79cb8)
将一个简单数组
@array
分配给此简单列表:

仍在使用引用:

use Data::Dumper;

# Using $array_ref to store the reference.
# There's no reason to use an @array to store a
# memory address string...
$array_ref = [["Hi", "Hello"],["Apple", "Orange"]];

# Pushing in the dereferenced array ref
push @$array_ref,  ["a", "b"];

# Let's the doctor take a look in this body
print Dumper $array_ref;
输出

$VAR1 = [
          [
            'Hi',
            'Hello'
          ],
          [
            'Apple',
            'Orange'
          ],
          [
            'a',
            'b'
          ]
        ];
似乎是你所期待的,不是吗


请参见,您有:

@data = [                #Open Square Bracket
   ["Hi", "Hello"],
   ["Apple", "Orange"]
];                       #Close Square Bracket
而不是这个:

@data = (                #Open Parentheses   
   ["Hi", "Hello"],
   ["Apple", "Orange"]
);                       #Close Parentheses
[…]
语法用于定义对数组的引用,而
(…)
则定义为数组

在第一个数组中,我们有一个数组
@data
,其中有一个成员
$data[0]
。此成员包含对由另外两个数组引用组成的数组的引用

在第二个数组中,我们有一个包含两个成员的数组
@data
$data[0]
$data[1]
。每个成员都包含对另一个数组的引用

对此要非常非常小心!我想你指的是第二个

让我们用一些语法糖来清理一下。这就是您的表现形式:

my @data;
$data[0] = ["Hi", "Hello"];
$data[1] = ["Apple", "Orange"];
数组中的每个条目都是对另一个数组的引用。由于
@data
只是一个数组,因此我可以使用
push
将元素推送到数组的末尾:

push @data, ["a", "b"];
这里我推另一个数组引用。如果能让人更容易理解,我也可以这样做:

my @temp = ("a", "b");
push @data, \@temp;
我创建了一个名为
@temp
的数组,然后将对
@temp
的引用推送到
@data

可以使用来显示结构。这是一个标准的Perl模块,因此应该已经在您的安装中提供:

use strict;
use warnings;
use feature qw(say);
use Data::Dumper;

my @data = (
    [ "Hi", "Hello"],
    [ "Apple", "Orange"],
);

push @data, ["a", "b"];
say Dumper \@data;
这将打印出:

$VAR1 = [             # @data
      [           # $data[0]
    'Hi',
    'Hello'
      ],
      [           # $data[1]
    'Apple',
    'Orange'
      ],
      [           # $data[2]
    'a',
    'b'
      ]
    ];
你有:

@data = [                #Open Square Bracket
   ["Hi", "Hello"],
   ["Apple", "Orange"]
];                       #Close Square Bracket
而不是这个:

@data = (                #Open Parentheses   
   ["Hi", "Hello"],
   ["Apple", "Orange"]
);                       #Close Parentheses
[…]
语法用于定义对数组的引用,而
(…)
则定义为数组

在第一个数组中,我们有一个数组
@data
,其中有一个成员
$data[0]
。此成员包含对由另外两个数组引用组成的数组的引用

在第二个数组中,我们有一个包含两个成员的数组
@data
$data[0]
$data[1]
。每个成员都包含对另一个数组的引用

对此要非常非常小心!我想你指的是第二个

让我们用一些语法糖来清理一下。这就是您的表现形式:

my @data;
$data[0] = ["Hi", "Hello"];
$data[1] = ["Apple", "Orange"];
数组中的每个条目都是对另一个数组的引用。由于
@data
只是一个数组,因此我可以使用
push
将元素推送到数组的末尾:

push @data, ["a", "b"];
这里我推另一个数组引用。如果能让人更容易理解,我也可以这样做:

my @temp = ("a", "b");
push @data, \@temp;
我创建了一个名为
@temp
的数组,然后将对
@temp
的引用推送到
@data

可以使用来显示结构。这是一个标准的Perl模块,因此应该已经在您的安装中提供:

use strict;
use warnings;
use feature qw(say);
use Data::Dumper;

my @data = (
    [ "Hi", "Hello"],
    [ "Apple", "Orange"],
);

push @data, ["a", "b"];
say Dumper \@data;
这将打印出:

$VAR1 = [             # @data
      [           # $data[0]
    'Hi',
    'Hello'
      ],
      [           # $data[1]
    'Apple',
    'Orange'
      ],
      [           # $data[2]
    'a',
    'b'
      ]
    ];

第二个示例不是数组,而是一个数组。Perl中没有数组的文本语法。第二个示例不是数组,而是数组。Perl中没有数组的文本语法。