Perl で trim するときは
$string =~ s/^\s*(.*?)\s*$/$1/;
これでいける。
空白文字が0文字以上続いていて、任意の文字の0文字以上の連続ないしは0か1 (カッコ()で囲んだ部分にマッチした文字列は、置換文字列によって、特殊変数$1などとして参照される) で、その後また空白文字の0文字以上の連続の場合、
$1 に置き換える。
というものです。
ref.
http://chaichan.lolipop.jp/perlnote/perlnote2007-12-13.htm