Aion-Format
view release on metacpan or search on metacpan
lib/Aion/Format.md view on Meta::CPAN
```
## replace ($subject, @rules)
ÐеÑколÑко пÑеобÑазований ÑекÑÑа за один пÑоÑ
од.
```perl
my $s = replace "33*pi",
qr/(?<num> \d+)/x => sub { "($+{num})" },
qr/\b pi \b/x => sub { 3.14 },
qr/(?<op> \*)/x => sub { " $& " },
;
$s # => (33) * 3.14
```
## matches ($subject, @rules)
Синоним `replace`. **DEPRECATED**.
```perl
my $s = matches "33*pi",
qr/(?<num> \d+)/x => sub { "($+{num})" },
qr/\b pi \b/x => sub { 3.14 },
qr/(?<op> \*)/x => sub { " $& " },
;
$s # => (33) * 3.14
```
## nous ($templates)
УпÑоÑеннÑй ÑзÑк ÑегÑлÑÑнÑÑ
вÑÑажений Ð´Ð»Ñ ÑаÑÐ¿Ð¾Ð·Ð½Ð°Ð²Ð°Ð½Ð¸Ñ ÑекÑÑа в докÑменÑаÑ
HTML.
1. УбиÑÐ°ÐµÑ Ð²Ñе пÑÐ¾Ð±ÐµÐ»Ñ Ð² наÑале и конÑе.
2. С наÑала каждой ÑÑÑоки ÑдалÑÑÑÑÑ 4 пÑобела или 0-3 пÑобела и ÑабÑлÑÑиÑ.
3. ÐÑÐ¾Ð±ÐµÐ»Ñ Ð² конÑе ÑÑÑоки и ÑÑÑоки пÑобелов заменÑÑÑÑÑ Ð½Ð° `\s*`.
4. ÐÑе пеÑеменнÑе в `{{ var }}` заменÑÑÑÑÑ Ð½Ð° `.*?`. Т.е. ÑаÑпознаÑÑÑÑ Ð²ÑÑ.
4. ÐÑе пеÑеменнÑе в `{{> var }}` заменÑÑÑÑÑ Ð½Ð° `[^<>]*?`. Т.е. не ÑаÑпознаÑÑÑÑ html-Ñеги.
4. ÐÑе пеÑеменнÑе в `{{: var }}` заменÑÑÑÑÑ Ð½Ð° `[^\n]*`. Т.е. должно бÑÑÑ Ð½Ð° одной ÑÑÑоке.
5. ÐÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð² двойнÑÑ
квадÑаÑнÑÑ
ÑкобкаÑ
(`[[ ... ]]`) могÑÑ Ð½Ðµ ÑÑÑеÑÑвоваÑÑ.
5. РкаÑеÑÑве кÑÑглÑÑ
Ñкобок иÑполÑзÑÑÑÑÑ Ð´Ð²Ð¾Ð¹Ð½Ñе Ñкобки (`(( ... ))`).
5. `||` - или.
```perl
my $re = nous [
q{
<body>
<center>
<h2><a href={{> author_link }}>{{: author_name }}</a><br>
{{ title }}</h2>
},
q{
<li><A HREF="{{ comments_link }}">((Comments: {{ comments }}, last from {{ last_comment_posted }}.||Added comment))</A>
<li><a href="{{ author_link }}">{{ author_name }}</a>
[[ (translate: {{ interpreter_name }})]]
(<u>{{ author_email }}</u>)
<li>Year: {{ posted }}
},
q{
<li><B><font color=#393939>Annotation:</font></b><br><i>{{ annotation_html }}</i></ul>
</ul></font>
</td></tr>
},
q{
<!----------- The work itself --------------->
{{ html }}
<!------------------------------------------->
},
];
my $s = q{
<body>
<center>
<h2><a href=/to/book/link>A. Alis</a><br>
Grivus campf</h2>
Any others...
<!----------- The work itself --------------->
This book text!
<!------------------------------------------->
};
$s =~ $re;
my $result = {%+};
$result # --> {author_link => "/to/book/link", author_name => "A. Alis", title => "Grivus campf"}
```
## num ($number)
ÐобавлÑÐµÑ ÑазделиÑели Ð¼ÐµÐ¶Ð´Ñ ÑиÑÑами ÑиÑла.
```perl
num +0 # => 0
num -1000.3 # => -1Â 000.3
```
РазделиÑелем по ÑмолÑÐ°Ð½Ð¸Ñ ÑвлÑеÑÑÑ Ð½ÐµÑазÑÑвнÑй пÑобел. УÑÑановиÑе ÑазделиÑÐµÐ»Ñ Ð¸ деÑÑÑиÑнÑÑ ÑоÑÐºÑ Ñак же, как:
```perl
num [1000, "#"] # => 1#000
num [-1000.3003003, "_", ","] # => -1_000,3003003
```
См. Ñакже `Number::Format`.
## rim ($number)
ÐеÑÐµÐ²Ð¾Ð´Ð¸Ñ Ð¿Ð¾Ð»Ð¾Ð¶Ð¸ÑелÑнÑе ÑелÑе ÑиÑла в **ÑимÑкие ÑиÑÑÑ**.
```perl
rim 0 # => N
rim 4 # => IV
rim 6 # => VI
rim 50 # => L
rim 49 # => XLIX
rim 505 # => DV
```
**РимÑкие ÑиÑÑÑ** поÑле 1000:
( run in 1.218 second using v1.01-cache-2.11-cpan-5735350b133 )