perl chomp

  • chomp VARIABLE

  • chomp( LIST )
  • chomp

    This safer version of chop removes any trailingstring that corresponds to the current value of$/ (also known as $INPUT_RECORD_SEPARATORin the English module). It returns the totalnumber of characters removed from all its arguments. It's often used toremove the newline from the end of an input record when you're worriedthat the final record may be missing its newline. When in paragraphmode ($/ = ''), it removes all trailing newlines from the string.When in slurp mode ($/ = undef) or fixed-length record mode($/ is a reference to an integer or the like;see perlvar), chomp won't remove anything.If VARIABLE is omitted, it chomps $_ . Example:

     
       
    1. while (<>) {
    2. chomp; # avoid \n on last field
    3. my @array = split(/:/);
    4. # ...
    5. }

    If VARIABLE is a hash, it chomps the hash's values, but not its keys,resetting the each iterator in the process.

    You can actually chomp anything that's an lvalue, including an assignment:

     
       
    1. chomp(my $cwd = `pwd`);
    2. chomp(my $answer = <STDIN>);

    If you chomp a list, each element is chomped, and the total number ofcharacters removed is returned.

    Note that parentheses are necessary when you're chomping anythingthat is not a simple variable. This is because chomp $cwd = `pwd`;is interpreted as (chomp $cwd) = `pwd`;, rather than aschomp( $cwd = `pwd` ) which you might expect. Similarly,chomp $a, $b is interpreted as chomp($a), $b rather thanas chomp($a, $b).

猜你喜欢

转载自blog.csdn.net/xdfwsl/article/details/80203830