I'm not sure just what you are looking for, but try something like:
See List::MoreUtils or List::Util for uniq() (which may not be strictly necessary) and Data::Dumper (which is a core module) for Dumper.c:\@Work\Perl\monks>perl -e "use warnings; use strict; ;; use List::MoreUtils qw(uniq); use Data::Dumper; ;; my @array1 = ('ux_prim_clk', 'ux_side_clk', 'ux_xtal_frm_refclk', 'pr +im_ibbs'); my @array2 = ('ccu_ux_xtal_frm_refclk_ack', 'ibbs_ux_prim_clkack', 's +br_ux_side_clkack'); ;; my @array1_split_2D = map [ split /_/ ], @array1; my @array2_split_2D = map [ split /_/ ], @array2; ;; print Dumper \@array1_split_2D; print Dumper \@array2_split_2D; ;; for my $ar_array_1_cols (@array1_split_2D) { for my $ar_array_2_cols (@array2_split_2D) { my %array_2_colums = map { $_ => 1 } @$ar_array_2_cols; my @intersection = grep exists $array_2_colums{$_}, uniq @$ar_arr +ay_1_cols; ;; print qq{(@$ar_array_1_cols) elements in (@$ar_array_2_cols): \n} +; if (@intersection) { print qq{ '$_'} for @intersection; } else { print ' - no intersection -'; } print qq{\n}; } print qq{\n}; } " $VAR1 = [ [ 'ux', 'prim', 'clk' ], [ 'ux', 'side', 'clk' ], [ 'ux', 'xtal', 'frm', 'refclk' ], [ 'prim', 'ibbs' ] ]; $VAR1 = [ [ 'ccu', 'ux', 'xtal', 'frm', 'refclk', 'ack' ], [ 'ibbs', 'ux', 'prim', 'clkack' ], [ 'sbr', 'ux', 'side', 'clkack' ] ]; (ux prim clk) elements in (ccu ux xtal frm refclk ack): 'ux' (ux prim clk) elements in (ibbs ux prim clkack): 'ux' 'prim' (ux prim clk) elements in (sbr ux side clkack): 'ux' (ux side clk) elements in (ccu ux xtal frm refclk ack): 'ux' (ux side clk) elements in (ibbs ux prim clkack): 'ux' (ux side clk) elements in (sbr ux side clkack): 'ux' 'side' (ux xtal frm refclk) elements in (ccu ux xtal frm refclk ack): 'ux' 'xtal' 'frm' 'refclk' (ux xtal frm refclk) elements in (ibbs ux prim clkack): 'ux' (ux xtal frm refclk) elements in (sbr ux side clkack): 'ux' (prim ibbs) elements in (ccu ux xtal frm refclk ack): - no intersection - (prim ibbs) elements in (ibbs ux prim clkack): 'prim' 'ibbs' (prim ibbs) elements in (sbr ux side clkack): - no intersection -
Update 1: See also How do I compute the difference of two arrays? How do I compute the intersection of two arrays? in perlfaq4 (you seem to be looking for an intersection).
Update 2: Changed example code to show extraction of intersection elements to @intersection array separately from display of the intersection.
Give a man a fish: <%-{-{-{-<
In reply to Re: remove element from 2D array after comparing it with other 2D array (updated)
by AnomalousMonk
in thread remove element from 2D array after comparing it with other 2D array
by Newbie95
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |