$str =~ s/^\s*([^\s]?.*)$/$1/; $str =~ s/^(.*[^\s])\s*$/$1/; # два regex работают быстрее, чем один более сложный