Perl Programming Documentation
Download Perl
Explore

Manual

- Overview
- Tutorials
- FAQs
- History / Changes
- License

Reference

- Language
- Functions
- Operators
- Special Variables
- Pragmas
- Utilities
- Internals
- Platform Specific

Modules

- A • B • C • D • E
- F • G • H • I • L
- M • N • O • P • S
- T • U • X

Tools

- Preferences

# fc

Perl 5 version 16.0 documentation
Go to top
Show recent pages
Recently read

# fc

Perl functions A-Z | Perl functions by category | The 'perlfunc' manpage

- fc EXPR

- fc

  Returns the casefolded version of EXPR. This is the internal function implementing the `\F` escape in double-quoted strings.

  Casefolding is the process of mapping strings to a form where case differences are erased; comparing two strings in their casefolded form is effectively a way of asking if two strings are equal, regardless of case.

  Roughly, if you ever found yourself writing this

          lc($this) eq lc($that)  # Wrong!        # or    uc($this) eq uc($that)  # Also wrong!        # or    $this =~ /\Q$that/i     # Right!

  Now you can write

          fc($this) eq fc($that)

  And get the correct results.

  Perl only implements the full form of casefolding. For further information on casefolding, refer to the Unicode Standard, specifically sections 3.13 `Default Case Operations` , 4.2 `Case-Normative` , and 5.18 `Case Mappings` , available at http://www.unicode.org/versions/latest/, as well as the Case Charts available at http://www.unicode.org/charts/case/.

  If EXPR is omitted, uses `$_` .

  This function behaves the same way under various pragma, such as in a locale, as lc does.

  While the Unicode Standard defines two additional forms of casefolding, one for Turkic languages and one that never maps one character into multiple characters, these are not provided by the Perl core; However, the CPAN module `Unicode::Casing` may be used to provide an implementation.

  This keyword is available only when the `"fc"` feature is enabled, or when prefixed with `CORE::` ; See feature. Alternately, include a `use v5.16` or later to the current scope.