use Filesys::Df; for my $filesys ( qw { / /usr /opt /sybase /spooltmp /var /home } ) { my $df = df( $filesys ); next if $df->{used} < 0 or 0 == $df->{user_blocks}; push @df, [ $filesys, $df->{used} / $df->{user_blocks}, $df->{bavail}*1024 ]; }