NAME

String::Nudge - Nudges all lines in a multi-line string

SYNOPSIS

use String::Nudge;

sub out {
    print nudge q{
        A long
        text.
    };
}

# is exactly the same as
sub out {
    print q{
            A long
            text.
};
}

DESCRIPTION

String::Nudge provides nudge, a simple function that indents all lines in a multi line string.

METHODS

nudge $string

# '    hello'
my $string = nudge 'hello';

nudge $number_of_spaces, $string

# '        hello'
my $string = nudge 8, 'hello';

If $number_of_spaces is not given (or isn't an integer >= 0) its default value is 4.

Every line in $string is indented by $number_of_spaces. Lines only consisting of white space is trimmed (but not removed).

nudge works nicely together with qi:

# these three packages are equivalent:
package Example::Nudge {

    use String::Nudge;
    use syntax 'qi';

    sub out {
        print nudge qi{
            sub funcname {
                print 'stuff';
            }
        };
    }
}
package Example::Q {

    sub out {
        print q{
    sub funcname {
        print 'stuff';
    }
};
    }
}
package Example::HereDoc {

    sub out {

        (my $text = <<"        END") =~ s{^ {8}}{}gm;
            sub funcname {
                print 'stuff';
            }
        END

        print $text;
    }
}

SEE ALSO

Indent::String
String::Indent
qi

AUTHOR

Erik Carlsson <info@code301.com>

COPYRIGHT

Copyright 2014 - Erik Carlsson

LICENSE

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