sub count_separators {
my $value = shift;
my $delim = shift;
my $set;
if ($delim eq '{') {
$set = '{|}';
}
elsif ($delim eq '(') {
$set = '(|)';
}
elsif ($delim eq '"') {
$set = '"';
}
else {
die; # Should never occur...
}
print 'sub { return shift =~ tr/' . $set . '//; }' . "\n";
return eval 'sub { return shift =~ tr/' . $set . '//; }';
}
####
sub count_separators {
my $value = shift;
my $delim = shift;
my $set;
{
$delim eq '{' and $set = '{|}' and last;
$delim eq '(' and $set = '(|)' and last;
$delim eq '"' and $set = '"' and last;
die; # Should never occur...
}
print 'sub { return shift =~ tr/' . $set . '//; }' . "\n";
return eval 'sub { return shift =~ tr/' . $set . '//; }';
}
####
sub count_separators {
my $value = shift;
my $delim = shift;
$delim eq '{' and return $value =~ tr[{|}][];
$delim eq '(' and return $value =~ tr[(|)][];
$delim eq '"' and return $value =~ tr["][]; #";
die;
}