use strict; use warnings; my ($raw, $capacity, $unassigned); while () { $raw = $1 if m/Raw capacity: (\d+\.\d+) GB/; if (m/Mode: Unassigned/) { $capacity += $raw; $unassigned++; } } print int ($capacity / $unassigned * 1000 + .5) / 1000; __DATA__ Drive at Tray 0, Slot 5 Raw capacity: 68.366 GB Usable capacity: 67.866 GB Current data rate: 2 Gbps Product ID: ST373453FC Mode: Unassigned Drive at Tray 0, Slot 5 Raw capacity: 48.366 GB Usable capacity: 67.866 GB Current data rate: 2 Gbps Product ID: ST373453FC Mode: Assigned Drive at Tray 0, Slot 5 Raw capacity: 88.366 GB Usable capacity: 67.866 GB Current data rate: 2 Gbps Product ID: ST373453FC Mode: Unassigned