foreach (@matches) {
push(@chomped, chomp($_));
}
Unfortunately, that's not going to do what you want. chomp returns the number of characters removed from all of its arguments, in this case, if on *nix, 1 each time for a newline. Thus, your @chomped will just contain a series of '1's. The following shows what happens with your method and also a couple of other ways to do it. (Note the -l command-line switch to append a newline after each print operation and the $count variable in the third snippet to show what chomp returns.)
$ cat alpha
abc
def
ghi
$ perl -le '
-> @arr = <>;
-> push @chomped, chomp( $_ ) for @arr;
-> print for @chomped;' alpha
1
1
1
$ perl -le '
-> @arr = <>;
-> @chomped = map { chomp; $_ } @arr;
-> print for @chomped;' alpha
abc
def
ghi
$ perl -le '
-> @arr = <>;
-> $count = chomp @arr;
-> print $count;
-> print for @arr;' alpha
3
abc
def
ghi
$
I hope this is of interest.
|