Template Toolkit(русская редакция) |
|
||
|
Template::Plugin::String |
|
ОБЗОР |
[ Индекс ] [ Модули ] [ Наверх ] |
# создание объектов String с помощью директивы USE [% USE String %] [% USE String 'initial text' %] [% USE String text => 'initial text' %] # или из существующего объекта String через new() [% newstring = String.new %] [% newstring = String.new('newstring text') %] [% newstring = String.new( text => 'newstring text' ) %] # или из существующего объекта String через copy() [% newstring = String.copy %] # добавление текста к строке [% String.append('text to append') %] # форматирование с выравниванием влево, вправо или по центру [% String.left(20) %] [% String.right(20) %] [% String.center(20) %] # американская нотация [% String.centre(20) %] # европейская нотация # и ряд других методов... |
ОПИСАНИЕ |
[ Индекс ] [ Модули ] [ Наверх ] |
Этот модуль реализует класс String для выполнения строковых операций с текстом в объектно-ориентированном стиле. Создать объект String можно с помощью директивы USE, добавив любой начальный текст в качестве аргумента или именованного параметра 'text'. [% USE String %] [% USE String 'initial text' %] [% USE String text='initial text' %] По умолчанию имя полученного объекта 'String', но объекту можно назначить другое имя переменной: [% USE greeting = String 'Hello World' %] Созданный объект String можно использовать в качестве прототипа для создания других объектов String посредством метода new(). [% USE String %] [% greeting = String.new('Hello World') %] Методу new() также можно передать начальный текст в качестве аргумента или именованного параметра 'text'. [% greeting = String.new( text => 'Hello World' ) %] Можно вызвать метод copy(), чтобы создать новый объект String как копию оригинала. [% greet2 = greeting.copy %] Объект String имеет метод text(), который возвращает содержимое строки. [% greeting.text %] Тем не менее, можно просто вывести строку по имени объекта, позволив перегруженному оператору стрингификации (stringification) вызвать метод text() автоматически. [% greeting %] Таким образом, можно рассматривать объекты String в значительной степени как обычный текст, интерполируя его в другие строки, например: [% msg = "It printed '$greeting' and then dumped core\n" %] Кроме того доступно множество других методов для манипуляций со строками. [% msg.append("PS Don't eat the yellow snow") %] Обратите внимание, что все методы оперируют и изменяют содержимое самой строки. Если необходимо работать с копией, необходимо предварительно её создать: [% msg.copy.append("PS Don't eat the yellow snow") %] Эти методы возвращают ссылку на сам объект String. Это позволяет строить цепочки из нескольких методов. [% msg.copy.append('foo').right(72) %] Это также означает, что в приведённых примерах в результате получается объект String, который приводит к вызову метода text() и, как следствие, выводу нового значения строки. Чтобы подавить вывод строки, можно использовать директиву CALL. [% foo = String.new('foo') %] [% foo.append('bar') %] # выводится "foobar" [% CALL foo.append('bar') %] # ничего не выводится |
МЕТОДЫ |
[ Индекс ] [ Модули ] [ Наверх ] |
Методы конструированияСледующие методы используются для создания новых объектов String.
Методы исследованияЭти методы используются для исследования содержимого строки или других параметров, связанных со строкой.
Методы измененияЭти методы модифицируют внутреннее значение строки. Например: [% USE str=String('foobar') %] [% str.append('.html') %] # str => 'foobar.html' Значение String-объекта 'str' теперь 'foobar.html'. Если не требуется изменять строку, нужно предварительно сделать её копию. [% str.copy.append('.html') %] Все эти методы возвращают ссылку на сам объект String. Это даёт два важных преимущества. Первое заключается в том, что в приведённом примере String-объект 'str', возвращаемый методом append() будет преобразован в строку вызовом собственного метода text(). Это возвратит новое модифицированное значение строки. Другими словами, следующая директива: [% str.append('.html') %] обновит строку и выведет её новое значение. Если нужно только обновить строку без вывода нового значения, следует использовать CALL. [% CALL str.append('.html') %] Другое преимущество заключается в том, что можно связать в цепочку любое количество различных методов объекта String. Например: [% String.append('.html').trim.format(href) %] Ниже приведены методы:
|
АВТОР |
[ Индекс ] [ Модули ] [ Наверх ] |
Энди Уардли (Andy Wardley <abw@andywardley.com>) |
ВЕРСИЯ |
[ Индекс ] [ Модули ] [ Наверх ] |
2.34, поставляется в составе Template Toolkit версии 2.14, дата релиза - 4 октября 2004. |
АВТОРСКИЕ ПРАВА |
[ Индекс ] [ Модули ] [ Наверх ] |
Copyright (C) 1996-2004 Andy Wardley. All Rights Reserved. Copyright (C) 1998-2002 Canon Research Centre Europe Ltd. Этот модуль является свободно-распространяемым программным обеспечением; вы можете распространять и/или модифицировать его на тех же условиях, что и Perl. |
СМОТРИ ТАКЖЕ |
[ Индекс ] [ Модули ] [ Наверх ] |