Arrays 当然为什么有人否决了我的问题!真的那么蠢吗?!我在任何地方都找不到这种精确赋值方式的语法。@Jonatha,@$x对我不起作用。但这绝对是我的“在黑暗中摸索”候选人之一这很奇怪,一分钟前,有人(我想是卡梅隆)在评论中发布了正确的答案,然后删除了它。无论如何

Arrays 当然为什么有人否决了我的问题!真的那么蠢吗?!我在任何地方都找不到这种精确赋值方式的语法。@Jonatha,@$x对我不起作用。但这绝对是我的“在黑暗中摸索”候选人之一这很奇怪,一分钟前,有人(我想是卡梅隆)在评论中发布了正确的答案,然后删除了它。无论如何,arrays,perl,Arrays,Perl,当然为什么有人否决了我的问题!真的那么蠢吗?!我在任何地方都找不到这种精确赋值方式的语法。@Jonatha,@$x对我不起作用。但这绝对是我的“在黑暗中摸索”候选人之一这很奇怪,一分钟前,有人(我想是卡梅隆)在评论中发布了正确的答案,然后删除了它。无论如何让perl让事情变得不可预测。答案是($a,$b,$c)=@{$}删除后的评论将永远丢失,AFAIK。幸运的是,这个答案的第三版也给了你“正确的答案”。而且,同样地,@$x和{$x}是等价的。呵呵。。。我删除了那条评论,因为我在命令提示符下尝试


当然为什么有人否决了我的问题!真的那么蠢吗?!我在任何地方都找不到这种精确赋值方式的语法。@Jonatha,@$x对我不起作用。但这绝对是我的“在黑暗中摸索”候选人之一这很奇怪,一分钟前,有人(我想是卡梅隆)在评论中发布了正确的答案,然后删除了它。无论如何让perl让事情变得不可预测。答案是($a,$b,$c)=@{$}删除后的评论将永远丢失,AFAIK。幸运的是,这个答案的第三版也给了你“正确的答案”。而且,同样地,@$x和{$x}是等价的。呵呵。。。我删除了那条评论,因为我在命令提示符下尝试了它,但无法让它工作。我的一行测试可能有缺陷。如果你愿意的话,我可以把评论加回去;-)或者你可以发布一个快速的答案,我会给你绿色的复选标记。。。不知道为什么有人否决了我的问题!真的那么蠢吗?!我在任何地方都找不到这种精确赋值方式的语法。@Jonatha,@$x对我不起作用。但这绝对是我的“在黑暗中摸索”候选人之一
my @a = ("foo","bar");
my ($item1, $item2) = @a;
sub method{
  my ($arg1, $arg2) = @_;
}
foreach(@twoDimenArray){
    my ($item1, $item2, $item3) = $_; #$_ is an array
}
use strict;
use warnings;

my @a = ("foo","bar");
my ($item1, $item2) = @a;

print "$item1 $item2\n";
use strict;
use warnings;

my @a;

$a[0][0] = "a00";
$a[0][1] = "a01";
$a[1][0] = "a10";
$a[1][1] = "a11";

my ($item1, $item2) = @a;

print "$item1 $item2\n";
ARRAY(0x100803068) ARRAY(0x100826770)
foreach my $array (@a)
{
    my($item1, $item2) = @$array;
    print "$item1 $item2\n";
}
a00 a01
a10 a11
#!/usr/bin/perl -w
#
# DBD::Informix Example 5 - fetchall_arrayref
#
# @(#)$Id: x05fetchall_arrayref.pl,v 100.1 2002/02/08 22:50:10 jleffler Exp $
#
# Copyright 1998 Jonathan Leffler
# Copyright 2000 Informix Software Inc
# Copyright 2002 IBM

use DBI;
printf("DEMO1 Sample DBD::Informix Program running.\n");
printf("Variant 4: using fetchall_arrayref()\n");
my($dbh) = DBI->connect("DBI:Informix:stores7") or die;
my($sth) = $dbh->prepare(q%
        SELECT fname, lname FROM customer WHERE lname < 'C'%) or die;
$sth->execute() or die;
my($ref) = $sth->fetchall_arrayref();
foreach $row (@$ref)
{
  printf("%s %s\n", $$row[0], $$row[1]);
}
undef $sth;
$dbh->disconnect();
printf("\nDEMO1 Sample Program over.\n\n");
foreach (@twoDimenArray) {
    my ($item1, $item2, $item3) = @{$_};    # $_ is an array
}
#!/usr/bin/perl

use strict;
use warnings;

my @ary = ( [ qw( foo bar ) ], [ qw( one two ) ], );

my ($ary00, $ary01, $ary10, $ary11) = map { @{ $_ } } @ary;
#!/usr/bin/perl

use strict;
use warnings;

my @ary = (
    [
        qw( foo bar ),
        [
            qw( BAZ QUUX )
        ],
    ],
    [
        qw( ten eleven ),
        [
            'one hundred and twenty',
            'one hundred and twenty-one',
            [
                'one thousand two hundred and twenty',
                'one thousand two hundred and twenty-one',
            ],
        ],
    ],
);

sub flatten {
    my @ary = @_;
    return map { ref($_) eq 'ARRAY' ? flatten( @{ $_ } ) : @{ $_ } } @ary;
}

my ( $a00, $a01, $a020, $a021, $a10, $a11, $a120, $a121, $a1220, $a1221 ) = flatten @a;