Jul 20, 2023

Check the presence of tabs in your project

TestNoTabs scans your project/distribution for any perl files scripts, modules, etc for the presence of tabs.

In the world of FreeBSD Ports, there are numerous tools and libraries for development. Let’s dive into one of those ports - p5-Test-NoTabs, a utility perfect for any developer who is keen on keeping their Perl’s scripts spick and span. It offers the ability to check your scripts for the presence of hard tab characters, which are undesirable to many programmers since they can cause alluring inconsistencies in code.

p5-Test-NoTabs belongs to the devel short for development category. It’s a Perl package, meaning it has the ‘p5-‘ prefix. It’s built specifically for testing - a crucial phase in the software development process.

The basic usage of p5-Test-NoTabs is pretty straightforward and doesn’t require extensive learning or setup. This ease of use makes it a great tool for both beginners in the FreeBSD world and seasoned professionals.

Installation process

Like the rest of FreeBSD ports, p5-Test-NoTabs can be installed straight from the FreeBSD Ports Collection. Navigate to the devel/p5-Test-NoTabs directory and install it by typing

cd /usr/ports/devel/p5-Test-NoTabs/
make install clean

Easy, right? This installs the package to your system, ready for use in your development projects.

Basic Usage

To leverage the power and benefits of p5-Test-NoTabs, you’ll need to insert it into your Perl’s script. You are explicitly telling Perl to use the p5-Test-NoTabs module to check for no hard tab characters in your Perl’s code.

Here is an example of how you include p5-Test-NoTabs in your test file of your Perl’s project

use TestNoTabs tests=>1;

In this code snippet, the use statement is employing the TestNoTabs module, and all_perl_files_ok function is a built-in function in the module that checks all Perl files in your project for hard-tab characters.

Running Tests

After installing the module and adding it to your Perl project, you can run your tests. Perl 5 projects usually contain a ‘t’ directory, where the test files are located. You can run these tests using prove or by invoking Perl’s script directly with perl -Ilib.

prove -lv t


perl -Ilib t/your-test-file.t

The output will display tabs presence with filenames and test results.

The Benefits of Using p5-Test-NoTabs

One of the key benefits of using p5-Test-NoTabs is the assurance of no hard tab characters in your code, leading to more readable and maintainable code. Code readability is crucial because we often do read code far more frequently than we write it. It helps to improve the overall quality of software and makes debugging easier.

Furthermore, considering that p5-Test-NoTabs is straight from the FreeBSD Ports Collection, it offers reliability and compatibility with FreeBSD systems. You know that it has been tested and is trusted by FreeBSD’s developers.

In line with ensuring the security of your development projects, using security software along with your development tools is recommended. A popular, multi-platform free software for network exploration and security auditing is nmap. If you’re interested in internet security, [nmap]https//freebsdsoftware.org/security/nmap.html is a useful tool to add to your toolbox. It can help you identify potential vulnerabilities in your network or systems.

In conclusion, p5-Test-NoTabs is both a useful and straightforward tool. It enforces good programming practice by ensuring there are no hard tab characters in your Perl’s scripts. By ensuring that your code is clean, you’re enhancing the maintainability of your code, which can be extremely beneficial in both large and small projects. Remember, good code isn’t just about doing the right thing but doing it well.

Checkout these related ports:
  • Zziplib - Library to provide transparent read access to zipped files
  • Zydis - Fast and lightweight x86/x86-64 disassembler library
  • Zycore-c - Support library with platform independent types, macros, etc for Zydis
  • Zthread - Platform-independent object-oriented C++ threading library
  • Zookeeper - Coordination Service for Distributed Applications
  • Zls - Zig LSP implementation + Zig Language Server
  • Zfp - High throughput library for compressed floating-point arrays
  • Zeal - Offline documentation browser
  • Zapcc - C++ caching compiler based on clang
  • Zanata-platform - Web-based translation platform
  • Zanata-cli - Zanata Java command line client
  • Z88dk - Complete Z80/Z180 development kit
  • Z80ex - ZiLOG Z80 CPU emulator library
  • Z80asm - Assembler for the Z80 microprocessor
  • Z80-asm - Z80 assembly code assembler and disassembler