Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Re^2: compare 2 arrays for intersect diff and commmon values

by rasgolla (Initiate)
on Mar 25, 2014 at 05:31 UTC ( [id://1079641]=note: print w/replies, xml ) Need Help??


in reply to Re: compare 2 arrays for intersect diff and commmon values
in thread compare 2 arrays for intersect diff and commmon values

Thanks for the response Ken. I have tried 3 ways but all of them throwing error:

1). As suggested:

@{$difference[0]}
Error -- >Can't use string ("ARRAY(0x2c992e0)") as an ARRAY ref while +"strict refs" in use at

2). Tried 2nd way

@{$difference}
Error as below -- >
Global symbol "$difference" requires explicit package name at Global symbol "$intersect" requires explicit package name at Global symbol "$union" requires explicit package name at .

3). tried 3rd way

@difference
DEBUG: - difference links values ARRAY(0x32690e0) ARRAY(0x3269090) ARR +AY(0x322d040) ARRAY(0x3276990) ARRAY(0x322d060) ARRAY(0x3269f80) ARRA +Y(0x3269040) DEBUG: - intersect links values DEBUG: - union links values ARRAY(0x32690e0) ARRAY(0x3269090) ARRAY(0x +322d040) ARRAY(0x3276990) ARRAY(0x322d060) ARRAY(0x3269f80) ARRAY(0x3 +269040)

Expected output should be device names(e.g ..ABC-DCFE41->90) so that I can remove difference part one by one from the data set.

Replies are listed 'Best First'.
Re^3: compare 2 arrays for intersect diff and commmon values
by kcott (Archbishop) on Mar 25, 2014 at 06:41 UTC
      Thanks for the response but if you see my code I pasted my code between . I really don't know why are you angry with me ... I am expecting output as device name which I stated in my previous reply. Please don't be angry my apologies. I am able to read my code clearing I don't know why are you saying unreadable mess .... I am again pasting it ...
      sub updatedevice() { my $n = {}; my $Device_LINK = $server->object("ICF_PersistentDataSet",$devicelinks +); my $Temp_Device_LINK = $server->object("ICF_PersistentDataSet",$tempde +vicelinks); my @current_devicelist = @{ $Device_LINK->invoke("get") }; my @temp_devicelist = @{ $Temp_Device_LINK->invoke("get") }; my %temp_list; my %current_list; my $size = @current_list; for ($n=0; $n < $size; $n++) { our $device=$current_list[$n][0]; DEBUG( "DEBUG: - devicelinks values $device " ); my $size = @temp_list; for ($n=0; $n < $size; $n++) { our $tempdevicelinks=$temp_list[$n][0]; DEBUG( "DEBUG: - temp plc links values $tempdevicelinks " ); my %count = (); foreach my $device (@current_list, @temp_devicelist) { $count{$device}++; } my @difference = grep { $count{$_} == 1 } keys %count; my @intersect = grep { $count{$_} == 2 } keys %count; my @union = keys %count; DEBUG( "DEBUG: - difference links values $difference[0] " ); DEBUG( "DEBUG: - intersect links values $intersect[0] " ); DEBUG( "DEBUG: - union links values $union[0] " ); } } }

      expected output device names Also I am able to read $device and $tempdevicelinks values as "ABC-DCFE41->90" "GHJKL-poiu->78"

        If you look through my posts in this thread, you'll see:

        "Please show actual output between <code>...</code> tags."
        "Please also show expected output (again, between <code>...</code> tags)."
        "... two polite requests to use "<code>...</code> tags" for showing output, ..."

        In each of those I'm making reference to output.

        Now you write:

        "Thanks for the response but if you see my code I pasted my code between ."

        Here you're referring to code not output. [Side issue: You've failed to finish that sentence.]

        And then you write:

        "I don't know why are you saying unreadable mess"

        That would be this:

        "Thanks for the response Ken. I have tried 3 ways but all of them throwing error: 1). As suggested: @{$difference[0]} Error -- >Can't use string ("ARRAY(0x2c992e0)") as an ARRAY ref while "strict refs" in use at 2). Tried 2nd way @{$difference} Error as below -- > Global symbol "$difference" requires explicit package name at Global symbol "$intersect" requires explicit package name at Global symbol "$union" requires explicit package name at . 3). tried 3rd way @difference DEBUG: - difference links values ARRAY(0x32690e0) ARRAY(0x3269090) ARRAY(0x322d040) ARRAY(0x3276990) ARRAY(0x322d060) ARRAY(0x3269f80) ARRAY(0x3269040) DEBUG: - intersect links values DEBUG: - union links values ARRAY(0x32690e0) ARRAY(0x3269090) ARRAY(0x322d040) ARRAY(0x3276990) ARRAY(0x322d060) ARRAY(0x3269f80) ARRAY(0x3269040) Expected output should be device names(e.g ..ABC-DCFE41->90) so that I can remove difference part one by one from the data set."

        I made all sorts of allowances for this being your first post here. I made polite requests, explained the reasoning behind those requests, provided examples and pointed you to further information. Yes, you do "appear to have completely ignored me".

        -- Ken

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others scrutinizing the Monastery: (5)
As of 2024-03-29 08:51 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found