in reply to Pattern-matching hash keys

For your first question, extracting the matched part is best done with the matching  /regexp/ operator:
$id = $1 if $key =~ /^(copy_\d_frag_\d_id)$/;
where I have simplified your regexp.

For the second question, this is a hash, so you add a key-value pair, rather than push onto an array:

$status{$client}{'tapes'}{$id} = 1;

Update: corrected a bug in the code.

-Mark