$hash1{$key}= "$metric1;$metric2;$metric3";
Personally, I'm not a fan of putting special characters anywhere. Or merging data together whenever and wherever it's not strictly required. Need to track information in memory? Merging not required. Need to send it to a file or to a remote host? Required. But then you use a nice serialisation protocol, such as JSON, XML, Storable, or even xSV (using Text::CSV_XS - it would at least handle cases where the metrics may have embedded semicolons).
So I'd want to keep each metric separated out. This also makes it easier to discern if file two has a repeated metric, in case you want to merge only unique metrics.
But maybe I'm just overthinking things :)