if ($temp =~ /(.+?)(\d{1,2}x\d{1,2}|s\d{1,2}e\d{1,2})/ix) { $inventory{$1}=$2; } #### if (($temp=~s/(\d{1,2}x\d{1,2})//i) or ($temp=~s/(s\d{1,2}e\d{1,2})//i) ) { $inventory{$_}=$1; } #### $ perl -we 'for (qw"14/3 03-14") { m"^(?:(?\d\d)-(?\d\d)|(?\d{1,2})/(?\d{1,2}))$" or die; print "$_ => month=$+{m}, day=$+{d}.\n"; }' 14/3 => month=3, day=14. 03-14 => month=03, day=14. #### perl -we 'for (qw"14/3 03-14") { m"^(?:(\d\d)-(\d\d)|(\d{1,2})/(\d{1,2}))$" or die; my $m = $1||$4; my $d = $2||$3; print "$_ => month=$m, day=$d.\n"; }'