---
name: "Test::Tabs"
section: "3pm"
platform: "linux"
package: "libtest-tabs-perl"
version: "0.005-4"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Test::Tabs"
---

# Test::Tabs(3pm)

check the presence of tabs in your project

## NAME

Test::Tabs - check the presence of tabs in your project

## SYNOPSIS

```
        use Test::Tabs tests => 1;
        tabs_ok('lib/Module.pm', 'Module is indented sanely');
```

Or

```
        use Test::Tabs;
        all_perl_files_ok();
```

Or

```
        use Test::Tabs;
        all_perl_files_ok( @mydirs );
```

## DESCRIPTION

This module scans your project/distribution for any perl files (scripts, modules, etc) for the presence of tabs.

In particular, it checks that all indentation is done using tabs, not spaces; alignment is done via spaces, not tabs; indentation levels never jump up (e.g. going from 1 tab indent to 3 tab indent without an intervening 2 tab indent); and there is no trailing whitespace on any line (though lines may consist entirely of whitespace).

Comment lines and pod are ignored. (A future version may also ignore heredocs.)

A trailing comment `"##WS"` can be used to ignore all whitespace rules for that line. `"## no Test::Tabs"` can be used to begin ignoring whitespace rules for all following lines until `"## use Test::Tabs"` is seen. `"## skip Test::Tabs"` tells Test::Tabs to skip the current file, but it must be used *before* the first whitespace rule violation.

### Functions

- all\_perl\_files\_ok( @directories )

  Applies `tabs_ok()` to all perl files found in `@directories` recursively. If no `@directories` are given, the starting point is one level above the current running script, that should cover all the files of a typical CPAN distribution. A perl file is \*.pl, \*.pm, \*.psgi, \*.t, or a file starting with `"#!...perl"`.

- "tabs\_ok( $file, $text )"

  Run a tab check on `$file`. For a module, either the path (`"lib/My/Module.pm"`) or the package name (`"My::Module"`) can be used.

  `$text` is the optional test name.

## BUGS

Please report any bugs to \<http://rt.cpan.org/Dist/Display.html?Queue=Test-Tabs\>.

## SEE ALSO

Test::EOL, Test::More.

## AUTHOR

Toby Inkster \<tobyink@cpan.org\>.

Large portions stolen from Test::NoTabs by Nick Gerakines.

## COPYRIGHT AND LICENCE

This software is copyright (c) 2012-2013 by Toby Inkster.

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

## DISCLAIMER OF WARRANTIES

THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
