Time::Pieceのバグ?newからのオブジェクトとstrftimeからのオブジェクトの引き算がおかしい

perlにTime::Pieceという便利なライブラリがありますが、newから作成したオブジェクトとstrftimeから作成したオブジェクトの引き算をすると誤作動するようです。

use Time::Piece;

my $now = new Time::Piece(time());
my $now_from_strptime = Time::Piece->strptime($now->strftime('%Y-%m-%d %H:%M'),'%Y-%m-%d %H:%M');
my $today_str = $now->strftime('%Y-%m-%d');
my $from_str = $today_str.' 12:00';
my $to_str = $today_str.' 15:00';
my $from = Time::Piece->strptime($from_str,'%Y-%m-%d %H:%M');
my $to = Time::Piece->strptime($to_str,'%Y-%m-%d %H:%M');

my $now_minus_from = $now - $from;
my $to_minus_now =  $to - $now;
my $to_minus_from = $to - $from;
my $from_minus_to = $from - $to;
my $to_minus_now_strp = $to - $now_from_strptime;
my $now_strp_minus_from = $now_from_strptime - $from;

print <<EOT;
# 基本時間の定義
now:	$now
now_from_strptime: $now_from_strptime
from:	$from
to:	$to

# strftimeから作成したもの同士の引き算は正常に動く
to-from: $to_minus_from

# newから作ったものと、strftimeから作成したものの引き算はおかしい
now-from:	$now_minus_from
to-now:	$to_minus_now

# newから作ったものでも、strftimeで作りなおせばOK
now_strf-from:	$now_strp_minus_from
to-now_strf:	$to_minus_now_strp
EOT

1;
で、実行結果が下記です。
# 基本時間の定義
now:	Sat Sep 21 22:14:48 2013
now_from_strptime: Sat Sep 21 22:14:00 2013
from:	Sat Sep 21 12:00:00 2013
to:	Sat Sep 21 15:00:00 2013

# strftimeから作成したもの同士の引き算は正常に動く
to-from: 10800

# newから作ったものと、strftimeから作成したものの引き算はおかしい
now-from:	4488
to-now:	6312

# newから作ったものでも、strftimeで作りなおせばOK
now_strf-from:	36840
to-now_strf:	-26040
やっているのは、nowを現在時刻でnewにより作り、それよりも過去のfromとtoという2つの時刻をstrftimeで作成。Time::Pieceオブジェクト同士の引き算を文字列で評価すると秒数になるのですが、明らかに挙動がおかしいです。3つのオブジェクトを普通にprintしてみると、一見ちゃんと作れてるっぽくはあるのですが。
そこで、nowから一度strptimeで文字列時刻を取り出してstrftimeで作りなおして再度引き算してやるとうまくいきます。
Time::Pieceにおいてnewは使わない方が良いのかな…。