どこが間違っているのかわかりませんが、$hostname 変数を "$from" 変数に入れると、sendmail は件名に何も出力しません。それ以外の場合は問題なく動作します。
「from」をnoreply@hostnameにしたいと思います。
コードは次のとおりです。
my $f="test.txt";
my $h=`hostname`;
if ( -s "$f" ) {
my $to='user@example.com';
my $from= "noreply\@$h";
my $subject='Test Error';
open(MAIL, "|/usr/sbin/sendmail -t");
## Mail Header
print MAIL "To: $to\n";
print MAIL "From: $from\n";
print MAIL "Subject: $subject\n\n";
## Mail Body
print MAIL "Test Body\n";
close(MAIL);
}