in reply to du with backticks

This is not your problem, but it might be of interest to know that ~-expansion is actually done by the shell. So, even though the following calls look like they do the same thing, the first two work as expected, but the last one doesn't:
`du ~user`; system("du ~user"); system("du", "~user"); # doesn't work
Generally you are better off calling getpwnam() to get a user's home directory instead of using ~user.
my $user = ...; my $home = (getpwnam($user))[7]; system("du", $home); # etc.