my $re; if (...) { $re = qr/.../ } elsif (...) { $re = qr/.../ } elsif (...) { $re = qr/.../ } else { die '...' } /$re/ or die("Bad data"); print "Caught $1\n"