Skip to content

Commit

Permalink
names-slices, namespaces
Browse files Browse the repository at this point in the history
  • Loading branch information
teodosi committed Jun 22, 2012
1 parent e5f0b28 commit e14c183
Showing 1 changed file with 22 additions and 18 deletions.
40 changes: 22 additions & 18 deletions sections_bg/names.pod
Expand Up @@ -139,28 +139,32 @@ X<отрязъци>
низови, числови и булеви. Масивите осъществяват индексиран достъп посредством квадратни скоби.
А хешовете имат достъп с ключ чрез фигурни скоби.

=head2 Namespaces
=head2 Пространства от имена

X<fully-qualified name>
X<пространства от имена>

Perl provides a mechanism to group similar functions and variables into their
own unique named spaces--I<namespaces> (L<packages>). A namespace is a named
collection of symbols. Perl allows multi-level namespaces, with names joined by
double colons (C<::>), where C<DessertShop::IceCream> refers to a logical
collection of related variables and functions, such as C<scoop()> and
C<pour_hot_fudge()>.

Within a namespace, you may use the short name of its members. Outside of the
namespace, refer to a member using its I<fully-qualified name>. That is, within
C<DessertShop::IceCream>, C<add_sprinkles()> refers to the same function as
does C<DessertShop::IceCream::add_sprinkles()> outside of the namespace.

While standard naming rules apply to package names, by convention user-defined
packages all start with uppercase letters. The Perl core reserves lowercase
package names for core pragmas (L<pragmas>), such as C<strict> and C<warnings>.
This is a policy enforced primarily by community guidelines.

Perl предоставя механизъм за групиране на сходни функции и променливи в техни собствени
именовани пространства--I<пространства от имена> (L<packages>). Пространство от имена
е именована колекция от символи. В Perl са разрешени йерархични пространства от имена. В тях
имената са обединени в двойка колони (C<::>), където C<DessertShop::IceCream> се отнася за логическа
колекция от свързани променливи и функции (като C<scoop()> и C<pour_hot_fudge()>).

В едно пространство от имена може да използвате съкратено име за неговите елементи.
Извън пространството от имена посочвате негов елемент само с I<пълното му име>.
Например, в пространството на C<DessertShop::IceCream>, C<add_sprinkles()> е същата функция,
както C<DessertShop::IceCream::add_sprinkles()> извън това пространство.

Стандартните правила за именоване са приложими към имената на пакети. А дефинираните
от потребителя пакети винаги започват с главна буква, по подразбиране. Ядрото на Perl
съхранява имената на пакети с малка буква като правила на ядрото (L<pragmas>), като например
C<strict> и C<warnings>. Тази политика е продиктувана най-вече от принципите на общността.

Всички пространства от имена в Perl 5 са видими глобално. Когато Perl търси символ
в C<DessertShop::IceCream::Freezer>, той гледа в C<main::> таблицата със символи
за символа, представляващ пространството от имена C<DessertShop::>. После гледа в него
за пространството C<IceCream::>, и т.н. Пространството C<Freezer::> е видимо и извън
пространството C<IceCream::>.
All namespaces in Perl 5 are globally visible. When Perl looks up a symbol in
C<DessertShop::IceCream::Freezer>, it looks in the C<main::> symbol table for a
symbol representing the C<DessertShop::> namespace, then in there for the
Expand Down

0 comments on commit e14c183

Please sign in to comment.