如何在数组的每个数组元素中存储值?

时间:2012-06-27 19:10:48

标签: perl

my @someones;
my $xpath = q(//body[@id='ext-gen3']/div[14]/div[2]/div/div/div/div/div/div/div/div/div/div[2]/div/div/table/tbody/tr/td/div/div);   
for my $i (0,2..20)  
{      
my @nodes = split qr'/', $xpath;      
$nodes[16] .= "[$i]" unless 0 == $i;      
#say join '/', @nodes; } 
@somenames = join('/',@nodes); 
print "\n"; 
print @somenames ; 
}

输出:

//body[@id='ext-gen3']/div[14]/div[2]/div/div/div/div/div/div/div/div/div/div[2]
/div/div/table/tbody/tr/td/div/div
//body[@id='ext-gen3']/div[14]/div[2]/div/div/div/div/div/div/div/div/div/div[2]
/div/div[2]/table/tbody/tr/td/div/div
//body[@id='ext-gen3']/div[14]/div[2]/div/div/div/div/div/div/div/div/div/div[2]
/div/div[3]/table/tbody/tr/td/div/div
//body[@id='ext-gen3']/div[14]/div[2]/div/div/div/div/div/div/div/div/div/div[2]
/div/div[4]/table/tbody/tr/td/div/div
//body[@id='ext-gen3']/div[14]/div[2]/div/div/div/div/div/div/div/div/div/div[2]
/div/div[5]/table/tbody/tr/td/div/div
//body[@id='ext-gen3']/div[14]/div[2]/div/div/div/div/div/div/div/div/div/div[2]
/div/div[6]/table/tbody/tr/td/div/div
//body[@id='ext-gen3']/div[14]/div[2]/div/div/div/div/div/div/div/div/div/div[2]
/div/div[7]/table/tbody/tr/td/div/div
//body[@id='ext-gen3']/div[14]/div[2]/div/div/div/div/div/div/div/div/div/div[2]
/div/div[8]/table/tbody/tr/td/div/div
//body[@id='ext-gen3']/div[14]/div[2]/div/div/div/div/div/div/div/div/div/div[2]
/div/div[9]/table/tbody/tr/td/div/div
//body[@id='ext-gen3']/div[14]/div[2]/div/div/div/div/div/div/div/div/div/div[2]
/div/div[10]/table/tbody/tr/td/div/div
//body[@id='ext-gen3']/div[14]/div[2]/div/div/div/div/div/div/div/div/div/div[2]
/div/div[11]/table/tbody/tr/td/div/div
//body[@id='ext-gen3']/div[14]/div[2]/div/div/div/div/div/div/div/div/div/div[2]
/div/div[12]/table/tbody/tr/td/div/div
//body[@id='ext-gen3']/div[14]/div[2]/div/div/div/div/div/div/div/div/div/div[2]
/div/div[13]/table/tbody/tr/td/div/div
//body[@id='ext-gen3']/div[14]/div[2]/div/div/div/div/div/div/div/div/div/div[2]
/div/div[14]/table/tbody/tr/td/div/div
//body[@id='ext-gen3']/div[14]/div[2]/div/div/div/div/div/div/div/div/div/div[2]
/div/div[15]/table/tbody/tr/td/div/div
//body[@id='ext-gen3']/div[14]/div[2]/div/div/div/div/div/div/div/div/div/div[2]
/div/div[16]/table/tbody/tr/td/div/div
//body[@id='ext-gen3']/div[14]/div[2]/div/div/div/div/div/div/div/div/div/div[2]
/div/div[17]/table/tbody/tr/td/div/div
//body[@id='ext-gen3']/div[14]/div[2]/div/div/div/div/div/div/div/div/div/div[2]
/div/div[18]/table/tbody/tr/td/div/div
//body[@id='ext-gen3']/div[14]/div[2]/div/div/div/div/div/div/div/div/div/div[2]
/div/div[19]/table/tbody/tr/td/div/div
//body[@id='ext-gen3']/div[14]/div[2]/div/div/div/div/div/div/div/div/div/div[2]
/div/div[20]/table/tbody/tr/td/div/div

执行上述代码片段后,所有20个值都存储在一个元素中(即$ somenames [0])。但我想存储在每个数组元素中,比如说for i=0,$somenames[0]; for i=2,$somenames[2];,直到for i=20,$somenames[20]。我该怎么做 ?如果我在for循环之外打印@somenames,它只打印20个element.how来存储数组的每个元素中的每个值吗?

3 个答案:

答案 0 :(得分:2)

你的问题令人困惑。我不确定你想要完成什么。也许这就是你想要的:

# Assign the right side to the $i'th element of @somenames
$somenames[$i] = join('/',@nodes); 

# Add an element to the end of @somenames
push @somenames, join('/',@nodes);

答案 1 :(得分:0)

请参阅此代码,了解如何将数组存储到数组>>

脚本:

use Data::Dumper;

my @a;

@{$a[0]} = (1, 2, 3);
@{$a[1]} = (5, 6, 7);

print Dumper(@a);

输出:

$VAR1 = [
          1,
          2,
          3
        ];
$VAR2 = [
          5,
          6,
          7
        ];

测试上面的代码here

答案 2 :(得分:0)

push填充数组。例如:

perl -le '$str="1 2 3 4 5";push @vals,split / /,$str;print join ":",@vals'
1:2:3:4:5