in reply to possible cross platform issue

Assuming it's OK for severity/modified to be blank, you can avoid the warning by changing that to
if ( $e->{severity} || '' =~ /High/ && $e->{modified} || '' =~ /($today|$yesterday)/ ) {
or
if ( defined $e->{severity} && defined $e->{modified} && $e->{severity} =~ /High/ && $e->{modified} =~ /($today|$yesterday)/ ) {

On the other hand, you might need to look at the source of your data and see about making a change there to ensure that severity and modified are set on all records if they're supposed to be required.

Either way, I would recommend making the behaviour consistent by adding use warnings right after use strict, so that they'll be on in both OSes, not by turning them off in Windows.