How to check if Two Sets are Equal in Perl


How to check if Two Sets are Equal in Perl ?

Answer

In Perl, sets can be represented using hash tables. You can check if two sets are equal by comparing their elements.



✐ Examples

1 Check Equality of Two Sets using Hash Tables - Equal Sets

In this example,

  1. We create two hash tables named %set1 and %set2.
  2. We add the same elements to both hash tables.
  3. We compare the keys of both hash tables to ensure they have the same elements.
  4. If both hash tables have the same keys, then the sets are equal; otherwise, they are not.

Perl Program

%set1 = (1 => 1, 2 => 1, 3 => 1);
%set2 = (1 => 1, 2 => 1, 3 => 1);

sub sets_are_equal {
    my ($set1_ref, $set2_ref) = @_;
    return 0 unless scalar keys %$set1_ref == scalar keys %$set2_ref;
    for my $key (keys %$set1_ref) {
        return 0 unless exists $set2_ref->{$key};
    }
    return 1;
}

print sets_are_equal(\%set1, \%set2); # Output: 1

Output

1

2 Check Equality of Two Sets using Hash Tables - Non-Equal Sets

In this example,

  1. We create two hash tables named %set1 and %set2.
  2. We add different elements to each hash table.
  3. We compare the keys of both hash tables to ensure they have the same elements.
  4. If both hash tables have the same keys, then the sets are equal; otherwise, they are not.

Perl Program

%set1 = (1 => 1, 2 => 1, 3 => 1);
%set2 = (4 => 1, 5 => 1, 6 => 1);

sub sets_are_equal {
    my ($set1_ref, $set2_ref) = @_;
    return 0 unless scalar keys %$set1_ref == scalar keys %$set2_ref;
    for my $key (keys %$set1_ref) {
        return 0 unless exists $set2_ref->{$key};
    }
    return 1;
}

print sets_are_equal(\%set1, \%set2); # Output: 0

Output

0

Summary

In this tutorial, we learned How to check if Two Sets are Equal in Perl language with well detailed examples.




More Perl Sets Tutorials

  1. How to create an Empty Set in Perl ?
  2. How to Initialize a Set in Perl ?
  3. How to Get Length of a Set in Perl ?
  4. How to create a Set of size N in Perl ?
  5. How to create a Set of Numbers from 1 to N in Perl ?
  6. How to create a Set of integers in Perl ?
  7. How to create a Set of Strings in Perl ?
  8. How to Access Items in a Set in Perl ?
  9. How to get a Random Item in a Set in Perl ?
  10. How to Iterate Over a Set in Perl ?
  11. How to check if a Set is Empty in Perl ?
  12. How to check if a Set is Not Empty in Perl ?
  13. How to get Subset from a Set in Perl ?
  14. How to check if a Specific Item is present in the Set in Perl ?
  15. How to check if a Set contains all the items of Another Set in Perl ?
  16. How to Sort Items of a Set in Perl ?
  17. How to Copy a Set in Perl ?
  18. How to add an Item to a Set in Perl ?
  19. How to find Union of Two Sets in Perl ?
  20. How to find Intersection of Two Sets in Perl ?
  21. How to check if Two Sets are Equal in Perl ?
  22. How to Convert a Set of Integers to a Set of Strings in Perl ?
  23. How to Convert a Set of Strings to a Set of Integers in Perl ?
  24. How to Convert a Set of Floats to a Set of Strings in Perl ?
  25. How to Convert a Set of Strings to a Set of Floats in Perl ?
  26. How to Filter Items of a Set based on a Condition in Perl ?
  27. How to Remove Specific Item from a Set in Perl ?
  28. How to Remove Items from Set based on a Condition in Perl ?
  29. How to create a Set of Sets in Perl ?