perl6.suОсвоим perl6 к 2015 году!

:


       Предположим, что у нас есть рутина, принимающая переменные $nomen и $familia. И в основном коде у нас тоже есть такие же переменные. Мы вызываем рутину, но не помним в каком порядке она принимает параметры. Можно сделать вызов с 'nomen=>$nomen', а можно и короче.
    
#!/usr/bin/perl6
my $familia='Karmanov';
my $nomen='Alexius';
my $email='stdin@perl6.su';
routine($email,$nomen,$familia);
# routine(:$email,:$nomen,:$familia); # эту возможность поломали в 2012.01, поэтому ерунда
sub routine($familia,$nomen,$email) {
	"$nomen $familia habet e-mail ($email), ergo homo sapiens est.".say;
	}
Alexius stdin@perl6.su habet e-mail (Karmanov), ergo homo sapiens est.

       Понятно, что для обозначения субстанций того или иного смысла используются типовые названия: $file, $name, $age, $email, $id etc. Поэтому такая ситуация вполне себе штатная.
# mutatio postrema: 22 Mar 2012


       Предположим, что на каком-то этапе нам захотелось организовать несколько переменных в одну кучу (в один хэш), например, для того, чтобы сохранить далее структуру данных. Из переменной $age мы формируем запись в хэше age=>18 etc.
    
#!/usr/bin/perl6
my ($age,$name,$country)=(18,'Bob','USA');
my @toys=<doll railroad sims3>;
my %parents=<mother Lisa father John>;
# теперь всё это добро надо записать в хэш
my %hash=:$age, :$name, :$country, :@toys, :%parents;
# что же у нас получилось?
for %hash.keys {
	"$_ = %hash{$_}".say;
	'-------'.say;
	}
%hash{'parents'}{'mother'}.say; # убеждаемся, что хэш
age = 18
-------
name = Bob
-------
country = USA
-------
toys = doll railroad sims3
-------
parents = mother	Lisa father	John
-------
Lisa

       Запись ':переменная' превращает переменную в пару 'переменная => значение'
       :$var это var => $var
       :@var это var => @var
       :%var это var => %var
# mutatio postrema: 22 Sep 2010

   :, хэши, пара объектов, sub      charta situs       nota LXXIX, nota LXXX   

    RSS     stdin@perl6.su    © Alexius Karmanov, 2010-2011