open my $dfout, "df -k|" or die "couldn't start df -k: $!"; open DISKSPACE as you do while (<$dfout>) { ... } close $dfout or die "df failed: $! $?";