LogicalChaos has asked for the wisdom of the Perl Monks concerning the following question:
I'm hoping one (or more) of you can help me on my path to enlightment.I'm trying to match a string and pull out the appropriate data. The string can be in one of three forms:'3d', '3d 2h', '6h'. What I have now (which works) is:
But it's rather of painful to look at. What alternatives exist? I suspect there is a way to only specify each match once, and not use '|', but...If it makes any difference, this is running on ActiveState 5.6.0 (build 616)$value =~ /^(?:(?:(\d+)d)?\s*(?:(\d+)h){1})|(?:(?:(\d+)d){1}\s*(?:(\d+)h)?)$/i; my $day = $1 || $3 || 0; my $hour = $2 || $4 || 0;
Back to
Seekers of Perl Wisdom