in reply to disk space utilization
I wonder how "/^" could match anything in the command you've given. Anyway, df /foo/bar lists the data only for the filesystem that contains the file /foo/bar (which can be the root file system, or a fs mounted on /foo or on /foo/bar).
The pure perl solution is to use ustat or statfs:
sub __NR_statfs () { 99 }; $file = "/"; $s = pack "x256"; -1 == syscal +l(__NR_statfs, "".$file, $s) and die "error statfs: $!"; (undef, $bsi +ze, undef, $bfree, $bavail) = unpack "l!5", $s; print $bavail*$bsize/ +1024, " kilobytes available\n";
Update: statfs is linux-specific (Update: except not really, but the structure might be different, I don't know). Ustat might be usable on other systems too.
Update 2006 sep: note that system call numbers are different on every architecture (OS and CPU type). You have to look up the syscall number of your architecture.
In Section
Seekers of Perl Wisdom