Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things

Re: Array name with a Variable

by GrandFather (Sage)
on Apr 17, 2008 at 21:10 UTC ( #681301=note: print w/replies, xml ) Need Help??

in reply to Array name with a Variable

Is something like this what you are after?

use strict; use warnings; use Set::Scalar; my @array1 = qw(c d e); my @array2 = qw(e f g h); my @array3 = qw(a b d); my @array4 = qw(s g h j k l); my @metaArray = (\@array1, \@array2, \@array3, \@array4, ); for my $first (0 .. $#metaArray - 1) { for my $second ($first + 1 .. $#metaArray) { my (%union, %intersect); $union{$_}++ && $intersect{$_}++ foreach @{$metaArray[$first]}, @{$metaArray[$second]}; my @intersect = sort keys %intersect; print "\@array$first, \@array$second: @intersect - "; print scalar @intersect, "\n"; } }


@array0, @array1: e - 1 @array0, @array2: d - 1 @array0, @array3: - 0 @array1, @array2: - 0 @array1, @array3: g h - 2 @array2, @array3: - 0

Perl is environmentally friendly - it saves trees

Replies are listed 'Best First'.
Re^2: Array name with a Variable
by Anonymous Monk on Apr 18, 2008 at 05:34 UTC
    If one of the input arrays has a duplicate entry, a spurious intersection will be detected.

    An input array set of

    my @array1 = qw(c d e); my @array2 = qw(e f g h); # my @array3 = qw(a b d); # original code my @array3 = qw(a a b d); # modified for test my @array4 = qw(s g h j k l);

    Produces output of

    @array0, @array1: e - 1 @array0, @array2: a d - 2 @array0, @array3: - 0 @array1, @array2: a - 1 @array1, @array3: g h - 2 @array2, @array3: a - 1

    godevars may be dealing with input arrays that have unique elements; certainly, his example data has this characteristic. However, it is nowhere stated explicitly that this is the case, so I just thought I'd mention it.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://681301]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (4)
As of 2018-08-19 09:22 GMT
Find Nodes?
    Voting Booth?
    Asked to put a square peg in a round hole, I would:

    Results (186 votes). Check out past polls.