ของ ค่าที่ต้องการ จากใน array 3 มิติ ยังไง (perl)
ก็เลย เขียน (มั่วๆ) มา ..
(ไม่ได้เขียนเป็น ฟังชั่น นะ)
ดังนั้น เอาไป พลิกแพลงเอาโลด
แบบ array ปกติๆ
#!/usr/bin/perl
use Data::Dumper;
my $search = 'four';
my @array = (
[1, 2, 3, 'four'],
['one', 'two', 'three', 4]
);
foreach my $index_a (0..$#array){
foreach my $index_b (@{$array[$index_a]}){
if($array[$index_a][$index_b] eq $search){
print "$search = \$hash[$index_a][$index_b]\n";
exit;
}
}
}
แบบ แปลง %hash มารับค่า (ทำ ทำไม ?)
#!/usr/bin/perl
use Data::Dumper;
my %hash;
my $search = 'four';
my @array = (
[1, 2, 3, 'four'],
['one', 'two', 'three', 4]
);
foreach my $i (0..$#array){
@hash{$i} = $array[$i];
}
foreach my $index_a(keys %hash){
my $i = 0;
foreach my $index_b(@{$hash{$index_a}}){
if($index_b eq $search){
print "index = \$hash[$index_a][$i] = $index_b\n";
exit;
}
$i++;
}
}
unknown@PiratePeer~/Desktop# ./test.pl index = $hash[0][3] = four
เสริม หาก จะเช็ค ว่า ค่านี้ เป็น array หรือไม่
ให้ใช้ ref($) เอา
# Is there an isArray() in Perl? --> http://www.perlmonks.org/?node_id=118961
foreach $item (@array){
if(ref($item) eq 'ARRAY'){
#It's an array reference...
#you can read it with $item->[1]
#or dereference it uisng @newarray = @{$item}
}else{
#not an array in any way...
}
}
No comments:
Post a Comment