I'd always prefer a module solution over directly accessing a system command. So it is easier to create a workaround solution for a platform, which e.g. has another df format or no df at all. I think you should be comfortable with Filesys::DiskFree, and if you ever hit a platform where it does not work you could tell the author about it or provide a patch yourself.