CUFP
belg4mit
snippet
<div class="Description">While searching for a parse of ASCII bulleted lists the other day, I ended up rolling my own:
<p>
<code>while( $text =~ /\G\s*($bullet)\s*([^\n]+)((?:\s*$bullet{2,}\s*[^\n]+)+)?/g ){ ...} </code>
</p>
And stumbled across what I believed to be a clever use of [perldoc://qr] to create $bullet from a separate data structure (which permits us to later determine what style of bullet we had, and map it to something):</div>
<CODE>
%bullets = ('*'=>'foo', '+'=>'bar', '@'=>'qux');
#Original, which as ikegami points out, doesn't quite work
#my $bullet= sprintf(qr/[%s]/, join('', keys %bullets));
#Alternate form, that I was trying to make more scrutable, with added \Q
my $bullet= qr/[\Q@{[join '', keys %bullets]}\E]/;
</CODE>