$ perl -E ' my @exceptions = ( "ERROR (EABC): Error message 1", "WARNING (WPQRST): Error message 2", "ERROR (EWXYZ): Error message 3", ); my $re = qr{^(?:ERR|WAR)[^:]+: \K.+$}; for my $e (@exceptions) { my $timestamp = localtime; $e =~ s/$re/[$timestamp] $&/; say $e; sleep 2; } ' ERROR (EABC): [Fri Oct 6 02:56:17 2023] Error message 1 WARNING (WPQRST): [Fri Oct 6 02:56:19 2023] Error message 2 ERROR (EWXYZ): [Fri Oct 6 02:56:21 2023] Error message 3