timothy: Anfang eines Strings abschneiden

Beitrag lesen

Am Ende mach ich das mit dem CHOP-Befehl, aber wie kann ich was vom Anfang eines Strings abschneiden? Gibt es da auch einen Befehl. Habe leider nichts diesbezüglich gefunden.
Ich wäre dankbar für einen Tipp.

lt. Perl-Cook-Book:

1.14. Trimming Blanks from the Ends of a String
Problem
You have read a string that may have leading or trailing whitespace, and you want to remove it.

Solution
Use a pair of pattern substitutions to get rid of them:

$string =~ s/^\s+//;
$string =~ s/\s+$//;
You can also write a function that returns the new value:

$string = trim($string);
@many   = trim(@many);

sub trim {
    my @out = @_;
    for (@out) {
        s/^\s+//;
        s/\s+$//;
    }
    return wantarray ? @out : $out[0];
}
Discussion
This problem has various solutions, but this is the most efficient for the common case.

If you want to remove the last character from the string, use the chop function. Version 5 added chomp, which removes the last character if and only if it is contained in the $/ variable, "\n" by default. These are often used to remove the trailing newline from input:

print what's typed, but surrounded by >< symbols

while(<STDIN>) {
    chomp;
    print ">$_<\n";
}

Bye
Timothy