在Perl中创建和增加数组

时间:2013-09-30 09:13:14

标签: arrays perl

我的阵列有问题,我需要你的帮助。

我想创建一个数组,其中包含我的if给出的结果,以便与另一个数组进行比较。

if (grep {$community eq $_ } @communities) {
   my $community_matchs = "";
   print "$community;$login;$last_at;;$size;1\n";
   push (@matchs, $community_matchs); 
   #my array
}
else{
   print "$community;$login;$last_at;;$size;0\n";
}

然后,稍后

if (grep {$c ne $_} @matchs) {
   print "$community;3\n";

我是初学者和法国人,所以要和我一起理解。

2 个答案:

答案 0 :(得分:1)

您可以使用Data :: Dumper进行调试。

use Data::Dumper;
print 'matchs:'.Dumper(\@matchs);

您没有向@matchs添加任何内容,因此它将为空。

也许这就是你在寻找什么:

if (my @community_matchs = grep {$community eq $_ } @communities) {
   print "$community;$login;$last_at;;$size;1\n";
   push (@matchs, @community_matchs); 
   #my array
}

答案 1 :(得分:0)

只是说明我认为你要做的事情,但我会考虑重写:

#!/usr/bin/perl
use strict;
use warnings;

my @communities = qw(community1 community2 community3 community4 community5 community6 community7 community8 community9);

my $community = 'community6';

my @matches;

foreach (@communities){
    if ($_ eq $community) {
        print "Match: $_\n";
        push (@matches, $_);
        # Do something else...
    }
    else {
        print "No match: $_\n";
        # Do something else...
    }
}

输出:

No match: community1
No match: community2
No match: community3
No match: community4
No match: community5
Match: community6
No match: community7
No match: community8
No match: community9