The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.


Regexp::Profanity::US - Simple functions for detecting U.S. profanity


  use Regexp::Profanity::US;

  my $degree  = 'definite'; # or 'ambiguous';

  my $profane = profane     ($string, $degree);
  my @profane = profane_list($string, $degree);


This module provides an API for checking strings for strings containing various degrees of profanity, per US standards.


$profane_word = profane($string, $degree)

Check $string for profanity of degree $degree, where $degree eq 'definite' or $degree eq 'ambiguous'

For positive matches, returns TRUE, with TRUE being the first match in the string.

For negative matches, FALSE is returned.

@profane_word = profane_list($string, $degree)

The sub returns a list of all profane words found in $string, or an empty list if none were found.


profane() and profane_list


Regexp::Common and Regexp::Common::profanity_us


There is another module supporting profanity checking, namely Regexp::Common::profanity, but many of the profane words were of European origin and I did not find them profane at all from an American standpoint.


T. M. Brannon,

Refactored by Matthew Simon Cavalletto,