O símbolo @ é especial dentro de strings com aspas duplas em Perl.
Ele está tentando encontrar uma matriz chamada @hostname e expandi-la. @hostname não está definido, por isso está expandindo para rsync -qtz user:/tmp/p /tmp .
Tente
system("rsync -qtz user\@hostname:/tmp/p /tmp");
em vez disso.