Backtick::AutoChomp - auto-chomp() result of backtick(``) and qx//


Backtick-AutoChomp documentation Contained in the Backtick-AutoChomp distribution.

Index


Code Index:

NAME

Top

Backtick::AutoChomp - auto-chomp() result of backtick(``) and qx//

VERSION

Top

Version 0.02

SYNOPSIS

Top

Automatically chomp() result of a backtick (``) or qx// command.

    $s = `echo blah` . 'stuff';
    print $s;   # blah\nstuff

    use Backtick::AutoChomp;
    $s = `echo blah` . 'stuff';
    print $s;   # blahstuff
    no Backtick::AutoChomp;

DESCRIPTION

Top

In bash, the shell will automatically chomp the result of a backtick call.

    s=`whoami`       # me
    echo =$s=        # =me=
    echo =`whoami`=  # =me=

In perl, we must** do:

    $s = `whoami`;
    chomp($s);
    print "=$s=";

The goal of this module is for this to DWIM:

    print "=".`whoami`."=";

Another case where this is potentially useful:

    use Backtick::AutoChomp;
    printf "me(%s), host(%s), kernel(%s), date(%s)\n",
	`whoami`,
	`hostname`,
	`uname -r`,
	`date`,
    ;

** Yes, there are pure-perl ways to do whoami, hostname, etc. But keep in mind programs that don't have equivalents ... and also, especially for temp/quick-n-dirty scripts, the convenience factor :)

Note that this is implemented as a source filter. It replaces a backtick or qx statement with a do{} statement.

SEE ALSO

Top

PPI, Filter::Simple

AUTHOR

Top

David Westbrook (CPAN: davidrw), <dwestbrook at gmail.com>

BUGS

Top

Please report any bugs or feature requests to bug-backtick-chomp at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Backtick-AutoChomp. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

Top

You can find documentation for this module with the perldoc command.

    perldoc Backtick::AutoChomp

You can also look for information at:

* RT: CPAN's request tracker

http://rt.cpan.org/NoAuth/Bugs.html?Dist=Backtick-AutoChomp

* AnnoCPAN: Annotated CPAN documentation

http://annocpan.org/dist/Backtick-AutoChomp

* CPAN Ratings

http://cpanratings.perl.org/d/Backtick-AutoChomp

* Search CPAN

http://search.cpan.org/dist/Backtick-AutoChomp

COPYRIGHT & LICENSE

Top


Backtick-AutoChomp documentation Contained in the Backtick-AutoChomp distribution.

package Backtick::AutoChomp;

use warnings;
use strict;
use Filter::Simple;
use PPI;
our $VERSION = '0.02';
FILTER {
  my $doc = PPI::Document->new(\$_);
  $_->set_content(sprintf 'do{local $_=%s;chomp;$_}', $_->content)
        for @{ $doc->find( sub {
                  $_[1]->isa('PPI::Token::QuoteLike::Backtick')
                  or
                  $_[1]->isa('PPI::Token::QuoteLike::Command')
                } ) || []
             };
  $_ = $doc->content;
};

1;