|
|
| version 1.87, 2002/10/15 08:31:56 | version 1.95, 2002/11/20 10:01:01 |
|---|---|
| Line 6 Xне сделано, видимо, не будет сделано | Line 6 Xне сделано, видимо, не будет сделано |
| операторы | операторы |
| !^eval(выражение)[формат] выражение, кроме обычных функций:: | !^eval(выражение)[формат] выражение, кроме обычных функций:: |
| !допустимы #комментарии | !допустимы #комментарии |
| работают до конца строки или закрывающейся круглой скобки | работают до конца строки или закрывающейся круглой скобки |
| внутри комментария допустимы вложенные круглые скобки | внутри комментария допустимы вложенные круглые скобки |
| !из неочевидных операторов: | !из неочевидных операторов: |
| !| побитный xor | !| побитный xor |
| !|| логический xor | !|| логический xor |
| Line 92 Xне сделано, видимо, не будет сделано | Line 92 Xне сделано, видимо, не будет сделано |
| default as-is | default as-is |
| !^taint[[lang]][код] | !^taint[[lang]][код] |
| default "just tainted, language unknown" | default "just tainted, language unknown" |
| ^process[[$caller|$var|$КЛАСС:CLASS]]{строка, которая будет process-ed, как код} | !^process[[$caller.CLASS|$object|$КЛАСС:CLASS]]{строка, которая будет process-ed, как код} |
| по умолчанию, методы компилируются в $self [в случае оператора, $self=$MAIN:CLASS] | по умолчанию, методы компилируются в $self [в случае оператора, $self=$MAIN:CLASS] |
| !^connect[protocol://строка соединения]]{код с ^sql[...]-ями} | !^connect[protocol://строка соединения]]{код с ^sql[...]-ями} |
| !mysql://user:pass@{host[:port]|[/unix/socket]}/database? | !mysql://user:pass@{host[:port]|[/unix/socket]}/database? |
| Line 227 odbc c:\drives\y\parser3project\odbc\ | Line 227 odbc c:\drives\y\parser3project\odbc\ |
| !void | !void |
| !^имя.length[] | !^имя.length[] |
| 0 | 0 |
| !^имя.pos[...] | !^имя.pos[...] |
| -1 | -1 |
| !^имя.int[] (default) | !^имя.int[] (default) |
| Line 257 odbc c:\drives\y\parser3project\odbc\ | Line 257 odbc c:\drives\y\parser3project\odbc\ |
| пример: | пример: |
| ^if(def $form:name) не пуста? | ^if(def $form:name) не пуста? |
| ^if($user.isAlive) истина? [автопреобразование к числу, не ноль?] | ^if($user.isAlive) истина? [автопреобразование к числу, не ноль?] |
| !^string::sql{query}[[$.limit(2) $.offset(4) $.default{n/a}]] | !^string::sql{query}[[$.limit(1) $.offset(4) $.default{n/a}]] |
| результат запроса должен быть один столбец/одна строка | результат запроса должен быть один столбец/одна строка |
| !^имя.int[] .int(default) целочисленное значение строки. | !^имя.int[] .int(default) целочисленное значение строки. |
| если ломается преобразование, берётся default | если ломается преобразование, берётся default |
| Line 275 odbc c:\drives\y\parser3project\odbc\ | Line 275 odbc c:\drives\y\parser3project\odbc\ |
| опции поиска+= | опции поиска+= |
| g заменить все вхождения, а не одно | g заменить все вхождения, а не одно |
| !^строка.split[разделитель][[lrhv]] | !^строка.split[разделитель][[lrhv]] |
| l слева направо [default] | l слева направо [default] |
| r справа налево | r справа налево |
| h nameless таблица | h nameless таблица |
| v таблица из столбца piece [default] | v таблица из столбца piece [default] |
| !^строка.{l|r}split[разделитель] таблица из столбца $piece | !^строка.{l|r}split[разделитель] таблица из столбца $piece |
| оставлен для совместимости | оставлен для совместимости |
| !^строка.upper|lower[] | !^строка.upper|lower[] |
| X^строка.truncate(предел терпенья) стиль :( | X^строка.truncate(предел терпенья) стиль :( |
| !^строка.length[] | !^строка.length[] |
| Line 328 odbc c:\drives\y\parser3project\odbc\ | Line 328 odbc c:\drives\y\parser3project\odbc\ |
| !^таблица.flip[] выдаёт транспонированную, надо куда-то сложить, потом пользовать | !^таблица.flip[] выдаёт транспонированную, надо куда-то сложить, потом пользовать |
| !^таблица.locate[поле;значение] передвигает текущую строку, если найдёт. выдаёт bool | !^таблица.locate[поле;значение] передвигает текущую строку, если найдёт. выдаёт bool |
| !^таблица.locate(логическое выражение) передвигает текущую строку, если найдёт. выдаёт bool | !^таблица.locate(логическое выражение) передвигает текущую строку, если найдёт. выдаёт bool |
| !^таблица.hash[поле, что будет ключом][[поле значений|table поля значений]][[$.distinct(1)]] | !^таблица.hash{[поле]|{код}|(выражение)}[[поле значений|table поля значений]][[$.distinct(1)]] |
| значением $hash.ключ будет hash в котором поля значений будут ключами | значением $hash.ключ будет hash в котором поля значений будут ключами |
| поля значений могут быть не указаны, тогда ими будут все столбцы, включая ключевой | поля значений могут быть не указаны, тогда ими будут все столбцы, включая ключевой |
| !^таблица.columns[]+ таблица из одного столбца $column | !^таблица.columns[]+ таблица из одного столбца $column |
| Line 365 odbc c:\drives\y\parser3project\odbc\ | Line 365 odbc c:\drives\y\parser3project\odbc\ |
| !form | !form |
| [берётся первый элемент из одноимённых из GET, потом первый из POST] | [берётся первый элемент из одноимённых из GET, потом первый из POST] |
| !$form:поле = string/file | !$form:поле = string/file |
| !$form:nameless = поле со значением поля без имени "?value&...", "...&value&...", "...&value" | |
| !$form:qtail = строка со значением текста после второго "?xxxxx", если там не было ',' [imap] | |
| !$form:fields = hash со всеми полями формы | !$form:fields = hash со всеми полями формы |
| !$form:tables.поле = table с одним столбцом "field" со значениями "поля" | !$form:tables.поле = table с одним столбцом "field" со значениями "поля" |
| !$form:imap = хэш с ключами 'x' и 'y' | |
| со значением ?1,2 приписки при использовании server-site image map | |
| !env | !env |
| !$env:переменная | !$env:переменная |
| Line 610 Xhashfile | Line 614 Xhashfile |
| !$файл_который_был_loaded.size | !$файл_который_был_loaded.size |
| !^file::stat[имя файла] | !^file::stat[имя файла] |
| !$файл_который_был_stated.size !.adate !.mdate !.cdate | !$файл_который_был_stated.size !.adate !.mdate !.cdate |
| !^file::cgi[имя файла[;env hash[;1cmd[;2line[;3ar[;4g[;5s]]]]]]] | !^file::cgi[имя файла[;env hash +options[;1cmd[;2line[;3ar[;4g[;5s]]]]]]] |
| возвращённый заголовок рассыпается на $поля | возвращённый заголовок рассыпается на $поля |
| $status | $status |
| $stderr | $stderr |
| !^file::exec[имя файла[;env hash $.stdin[текст][;1cmd[;2line[;3ar[;4g[;5s;...under win32 max 10 args]]]]]]] | !^file::exec[имя файла[;env hash[;1cmd[;2line[;3ar[;4g[;5s;...under win32 max 10 args]]]]]]] |
| options: | |
| $.stdin[текст] если текст пуст, отключается автоматическое пересовывание данных HTTP-POST | |
| !^file:move[старое имя файла;новое имя файла] | !^file:move[старое имя файла;новое имя файла] |
| можно переименовывать и двигать каталоги[win32: но не через границу дисков] | можно переименовывать и двигать каталоги[win32: но не через границу дисков] |
| каталоги для dest создаются с правами 775 | каталоги для dest создаются с правами 775 |
| Line 630 Xhashfile | Line 636 Xhashfile |
| !^file:basename[/a/some.tar.gz]=some.tar.gz | !^file:basename[/a/some.tar.gz]=some.tar.gz |
| !^file:justname[/a/some.tar.gz]=some.tar | !^file:justname[/a/some.tar.gz]=some.tar |
| !^file:justext[/a/some.tar.gz]=gz | !^file:justext[/a/some.tar.gz]=gz |
| !/some/page.html: ^file:fullpath[a.gif] => /some/a.gif | |
| math | math |
| !$math:PI | !$math:PI |