foreach my $row ($ts->rows) { @$row = map { clean_text( $_ ) } @$row; #... } #... my $cell1=$te->rows->[$rowIndex][1]; clean_text( $cell1 ); #... sub clean_text { # remove all control characters $_[0] =~ s/[[:cntrl:]]+//g; # remove white space at start/end $_[0] =~ s/^\s+//; $_[0] =~ s/\s+$//; # or remove all white space $_[0] =~ s/\s+//g; }