How to Remove Items from Set based on a Condition in Perl


How to Remove Items from Set based on a Condition in Perl ?

Answer

To remove items from a set (represented as a hash) based on a condition in Perl, you can iterate over the hash and delete items that meet the condition.



✐ Examples

1 Remove Even Numbers from a Set

In this example,

  1. First, we create a hash named %number_set to represent the set, with integer keys and values both set to 1: my %number_set = (1 => 1, 2 => 1, 3 => 1, 4 => 1, 5 => 1);.
  2. Next, we use a foreach loop to iterate over the keys of the hash.
  3. Within the loop, we check if the current key (number) is even using the modulus operator %.
  4. If the number is even, we delete it from the hash using the delete function.
  5. We print the updated hash to verify that even numbers have been removed.

Perl Program

use strict;
use warnings;

my %number_set = (1 => 1, 2 => 1, 3 => 1, 4 => 1, 5 => 1);
print "Original Set: ";
print join(", ", keys %number_set) . "\n";

foreach my $num (keys %number_set) {
    if ($num % 2 == 0) {
        delete $number_set{$num};
    }
}

print "Set after removing even numbers: ";
print join(", ", keys %number_set) . "\n";

Output

Original Set: 1, 2, 3, 4, 5
Set after removing even numbers: 1, 3, 5

2 Remove Strings Longer Than 4 Characters from a Set

In this example,

  1. First, we create a hash named %string_set to represent the set, with string keys and values both set to 1: my %string_set = ("apple" => 1, "banana" => 1, "orange" => 1, "kiwi" => 1);.
  2. Next, we use a foreach loop to iterate over the keys of the hash.
  3. Within the loop, we check if the length of the current key (string) is greater than 4 using the length function.
  4. If the length is greater than 4, we delete the string from the hash using the delete function.
  5. We print the updated hash to verify that strings longer than 4 characters have been removed.

Perl Program

use strict;
use warnings;

my %string_set = ("apple" => 1, "banana" => 1, "orange" => 1, "kiwi" => 1);
print "Original Set: ";
print join(", ", keys %string_set) . "\n";

foreach my $str (keys %string_set) {
    if (length($str) > 4) {
        delete $string_set{$str};
    }
}

print "Set after removing strings longer than 4 characters: ";
print join(", ", keys %string_set) . "\n";

Output

Original Set: apple, banana, orange, kiwi
Set after removing strings longer than 4 characters: kiwi

Summary

In this tutorial, we learned How to Remove Items from Set based on a Condition 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 ?