[Moscow.pm] Иногда вещи не то , чем кажутся
Vladimir V. Perepelitsa
inthrax на gmail.com
Чт Июн 5 05:18:23 PDT 2008
On Thursday 05 June 2008 16:12:13 Denis Evdokimov wrote:
> > join, кстати, лишний. без него все работает:
> > sub say { print @_, "\n"; }
>
> Не совсем лишний, а скорее чуток неправильный
> Вот тут http://perl6.ru/2006/09/ написано
>
> my @array = 1..5;
> say @array.reverse;
> Этот пример напечатает 5 4 3 2 1
>
> Следовательно
> sub say { print join(" ", @_)."\n" }
> а ещё лучше
> sub say
> {
> local $\ = "\n";
> print join " ", @_;
> }
почему-то все забывают про то, что прототип у say должен быть (;@)
и есть еще say for qw(x y z);
поэтому:
sub say (;@) {
local ($\,$,) = ("\n",' ');
print @_ ? @_ : $_;
}
my @a = qw(x y z);
say @a;
say for @a;
say "test";
ну или можно без local:
sub say (;@) {
print @_ ? join ' ', на _ : $_, "\n";
}
--
Vladimir Perepelitsa aka Mons Anderson
<inthrax на gmail.com> / #99779956
Подробная информация о списке рассылки Moscow-pm