use strict; my @views = ("ignore","ignore","dont\\ignore\\this.vms","ignore"); my %regex_hash = ( '\.vms' => [ qr/\\/ , '/' ], ); for my $data (@views) { for my $re_key ( grep { $data =~ /$_/ } keys %regex_hash ) { $data =~ s!$regex_hash{$re_key}[0]!$regex_hash{$re_key}[1]!g; } } print join "\n", @views; #### ignore ignore dont/ignore/this.vms