in reply to backticks buffering, tally me banana

It's not so much a buffering issue as you waiting for the child to finish before printing anything. Just use system instead of backticks.

my $rsync_cmd = "rsync -vza --delete --delete-excluded $exclude_opts $ +conf{dir_backup_from} $mountpoint_reversed_enc"; system($rsync_cmd);

rsync is still free to buffer its output and there's nothing you can do about that, but since its STDOUT is connected to a terminal (assuming the Perl script's STDOUT is connected to a terminal), it'll probably avoid buffering its output.

You have another unrelated problem if $conf{dir_backup_from} contains the path to a directory rather than bourne shell argument literal, one that can easily be fixed by using the multi-argument form of system.

my @rsync_cmd = ( 'rsync', '-vza', '--delete', '--delete-excluded', split(' ', $exclude_opts), $conf{dir_backup_from}, $mountpoint_reversed_enc, ); system(@rsync_cmd);