chopVARIABLE
chopLIST
chop
This function chops off the last character of a string and returns the character chopped. The
chop
operator is used primarily to remove the newline from the end of an input record, but is more efficient than
s/\n$//
. If
VARIABLE
is omitted, the function chops the
$_
variable. For example:
while (<PASSWD>) { chop; # avoid \n on last field @array = split /:/; ... }
If you chop a
LIST
, each string in the list is chopped:
@lines = `cat myfile`; chop @lines;
You can actually chop anything that is an lvalue, including an assignment:
chop($cwd = `pwd`); chop($answer = <STDIN>);
Note that this is different from:
$answer = chop($tmp = <STDIN>); # WRONG
which puts a newline into
$answer
, because
chop
returns the character chopped, not the remaining string (which is in
$tmp
). One way to get the result intended here is with
substr
:
$answer = substr <STDIN>, 0, -1;
But this is more commonly written as:
chop($answer = <STDIN>);
To chop more than one character, use
substr
as an lvalue, assigning a null string. The following removes the last five characters of
$caravan
:
substr($caravan, -5) = "";
The negative subscript causes substr to count from the end of the string instead of the beginning.