dポイントプレゼントキャンペーン実施中!

配列の中に、同じ値があるかどうか、確認して、なければ
データを渡すというようなプログラムを書きましたが、どうもうまくいきません.二次元配列が間違っているのだと思いますが、どこがいけないのでしょうか.

my @databe=qw(aa:ee:rr:rr aa:rr:tt:aa dd:tt:dd:aa);
my @nonumber=qw(ringo mikan tamago susi);
my @check=();#not same contents
my $p=0;
my @array=();
foreach( @databe ){
my @f = split(/:/);
my $i=0;
foreach(@f){
push( @{$array[$p]}, $_);
$i++;
}
$p++;
}
for(my $i=2;$i<$#nonumber;$i++){
for(my $p=0;$p<$#databe;$p++){
unless($array[0][$i] eq $array[$p][$i]){
push(@check, $i);
}
}
}
foreach( @databe ){
my @f = split(/:/);
my %tmp;
$tmp{GEBEN1}=$f[$check[0]];#html::template
$tmp{GEBEN2}=$f[$check[1]];#html::template
push( @alldata,\%tmp);
}


プログラム初心者です。自分なりに組んでみたのですがどうもうまくいきません.
分かる方御回答よろしくお願いします。

A 回答 (1件)

「どうもうまくいきません」というのは相手に何も伝わらないので, 回答がほしいのであればこのように書いてはいけません.


「あなたがどのような結果を期待しているのか」がわからなければ「うまくいかない」のかどうかも判断できないよね. ついでにいうと, 「実際にどのような結果が得られたのか」も書いておくと, 回答者がわざわざ確かめなくていいので親切というもの.
ところで, 最後の foreach ループは何がしたいの? 特に, $f[$check[0]] とか $f[$check[1]] とかで何をしている (つもりな) の?
    • good
    • 0
この回答へのお礼

コメントありがとうございます。
次回から気をつけますね。

また、問題は、二次元配列の二つ目の[が{である必要がありました。
失礼しました。

お礼日時:2009/11/06 18:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!