|
Тема |
Re: Въпросче от новобранец - за променливи и т.н. [re: bira_more] |
|
Автор |
Ognen_Demon (Web-dev) |
|
Публикувано | 20.10.05 15:14 |
|
|
От прочетените мнения единствено Биpxaджия се изказа най-компетентно, но доста дълго. А с две думи отговора е:
my $abc; # taka deklarirame promenliwa
my ( $abc ) = 3 = 5;
# neprawilno, shte wurne greshka, shtoto '3' se iawiawa ako ne se
# luja anonimna konstanta na koiato se opitwame da priswoim stoinost
# '5'
my ( $abc ) = 3;
# taka deklarirame anonimen masiw, kam chiito nulew element se
# obrushtame sus skalarnata promenliwa $abc, koiato w sluchaia
# se iawiawa neshto kato pointer kam elementa
# i w posledstwie i priswoiawame stoinost '3';
# sled tozi red natatak $abc weche si e w chisto skalaren kontekst
# ...
# wsushtnost ne sam mnogo siguren dali niama da e po-prawilno da se
# kaje "obrushtame se kum promenliwata $abc w konteksta na masiw"
# no w Perl baia neshta ne sa towa koeto izglejdat :))
Междудругото конструкцията с анонимния масив е много често ползвана
за следната трикинка примерно ( поне аз най-вече за това я ползвам ):
- имаме масив @ar
- искаме от него да изкопчим конкретни елементи
my ( $a ) = @ar; # samo nulewia element
my ( $a, undef, $c ) = @ar; # nulewia i wtoria element
Ок. На пръв поглед това изглежда не-особено смислено. Ето пример от
самата практика - декларация на метод myMethod в клас,
който приема един параметър $a:
# Primeren metod
sub myMethod {
my ( $self, $a ) = @_;
} # end myMethod()
( От гледна точка на практиката така май се явява най-удобно. Иначе старите пърлари в нета не одобряват точно тази декларация на функции много много )
И един съвет от мен, макар че където и да прочетеш, ще те посъветват същото:
use strict;
Ако не го ползваш, може да не забележиш доста грешки, които на всеки се случва да допусне особено ако бърза или е уморен.
|
| |
|
|
|