1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
BEGIN { binmode(STDOUT, ":utf8"); binmode(STDIN, ":utf8"); %specials = ('%' => 'percent', '-' => 'minus', '>' => 'greater', '<' => 'less', ',' => 'comma', '.' => 'period', '$' => 'dollar', '!' => 'exclam', '?' => 'question', '+' => 'plus', '/' => 'slash', '#' => 'numbersign', '@' => 'at', ); sub splitup { my $arg=shift; local $_; my @out; my $rv; return "\{$arg\}" if length($arg) > 7; @out=split //, $arg; $rv=""; for (@out) { $_ = $specials{$_} // $_; $rv .= " <$_>"; } return $rv; } } unless (/^#/) { my $hold=$_; s/<MM>/<Multi_key> <Multi_key>/; s({([][[:alnum:] _+%@><,.^\$+#()!/-]+)})(splitup($1))e; if (length($1) > 7) { $_=$hold; s/^<MM>/### <MM>/; } }
|