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


Text::Chomp - a module implementing a portable chomp.


    use strict;
    use warnings;
    use Text::Chomp;

    open FILE, "file.dat"
        or die "Unable to open file:  $!";

    while (<FILE>) {
        # Strip off any end of line character, not just $/
        my $line = tchomp $_;

    close FILE;


Text::Chomp implements a single function, tchomp, which will remove all known (by me, at least) line separators. chomp() works only on the value in $/, which can be difficult if working in multi-platform environments.


tchomp() is the only function exported. Attempts to export other functions will cause the module to fail to load.


tchomp $text

This function removes the end of line character from a line of text and returns the text. Line separators currently handled include:

\n - line feed
\r\n - carriage return/line feed
\r - carriage return
\f - form feed
\x{2028} - Unicode line separator
\x{2029} - Unicode page separator


Precompile the regular expression used for speed, and so that it can be accessed for split().


Please report any bugs or feature requests to, or through the web interface at I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.


Original inspiration came from an ancient perlbug #p5p provided some additional ideas regarding the Unicode (and a suggested name of Ch::omp). Finally, the "Perl Cookbook" had information on how to match the Unicode line and page separators.


Copyright 2004 Steve Peters, All Rights Reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.