рдкрд░реНрд▓ 5.10 рдореЗрдВ рдирдпрд╛ рдХреНрдпрд╛ рд╣реИ?

рджреВрд╕рд░реЗ рджрд┐рди, рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдкрд░реНрд▓ рдХрд╛ рдкрд╣рд▓рд╛ рдЙрдореНрдореАрджрд╡рд╛рд░ рд╕рд╛рдордиреЗ рдЖрдпрд╛ - 5.10.0 RC1 ред рд▓реЗрдХрд┐рди рдкрд┐рдЫрд▓реА рд░рд┐рд▓реАрдЬ (5.8) рдХреЛ 5 рд╕рд╛рд▓ рдмреАрдд рдЪреБрдХреЗ рд╣реИрдВред



рддреЛ 5.10 рдореЗрдВ рд╣рдорд╛рд░рд╛ рдХреНрдпрд╛ рдЗрдВрддрдЬрд╛рд░ рд╣реИ?



рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдкрд░реНрд▓ 5.10 рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдкрд┐рдЫрдбрд╝реЗ рд╕рдВрдЧрдд рд╣реИ, рдЖрдЧрд╛рдореА рдкрд░реНрд▓ 6 рдХреЗ рд╡рд┐рдкрд░реАрддред



рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд╕рдВрд╕реНрдХрд░рдг 5.10 рдХреА рдирдИ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдЕрдХреНрд╖рдо рд╣реИрдВред рд╡реЗ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЙрдкрдпреЛрдЧ рд╕реБрд╡рд┐рдзрд╛ рдкреНрд░рд╛рдЧреНрдорд╛ рджреНрд╡рд╛рд░рд╛ рд╕рдХреНрд░рд┐рдп рд╣реЛрддреЗ рд╣реИрдВ, рдЬреЛ рд╕рдВрдпреЛрдЧрд╡рд╢, рдПрдХ рд╢рд╛рдмреНрджрд┐рдХ рдЧреБрдВрдЬрд╛рдЗрд╢ рд╣реИ; рдпрд╛ рд░рд┐рдХреЙрд░реНрдб рдЙрдкрдпреЛрдЧ 5.10 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ред



рд╕рдорд╛рд░реЛрд╣ рдХрд╣реЗрдВ

рдЕрдЪреНрдЫреЗ рдкреБрд░рд╛рдиреЗ рдкреНрд░рд┐рдВрдЯ рдХрд╛ рдПрдХ рдПрдирд╛рд▓реЙрдЧ, рдПрдХрдорд╛рддреНрд░ рдЕрдВрддрд░ рдЬреЛ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рд▓рд╛рдЗрди рдореЗрдВ "\ n" рдЬреЛрдбрд╝рддрд╛ рд╣реИ:

#

print "$_\n" for @lines;

#

say for @lines;








рд╕рдВрдЪрд╛рд▓рдХ //

рдорд┐рд╢реНрд░рдг || рдФрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд, рдЬрд┐рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд-рдпрд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЬреНрдЮрд╛рдд рд╣реИ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╣реА рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ "рдЭреВрдареЗ" рдореВрд▓реНрдпреЛрдВ "" рдФрд░ 0 рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ:

$var = $_[0] || 'default';





рд╕рд╣реА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ:

$var = $_[0];

$var = 'default' unless defined $var;

#

$var = defined $_[0] ? $_[0] : 'default';






рдкрд┐рдЫрд▓реЗ рджреЛ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рдирдП // рдСрдкрд░реЗрдЯрд░ рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рд╕реЗ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ:

$var = $_[0];

$var //= 'default';

#

$var = $_[0] // 'default';








рд╕рдВрдЪрд╛рд▓рдХ ~~

рдпрд╣ рдСрдкрд░реЗрдЯрд░ рд╕реНрдорд╛рд░реНрдЯ рдорд┐рд▓рд╛рди рдпрд╛ рд╕реНрдорд╛рд░реНрдЯ рдорд┐рд▓рд╛рди рдХреЗ рддрдВрддреНрд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╕рд░рд╛рд╣рдиреАрдп рд╣реИ (рдЕрд░реНрдерд╛рдд, $ ~ ~ $ b $ b ~~ $ a рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ) рдФрд░ рдЗрд╕рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдкрд╛рд░рд┐рдд рдХрд┐рдП рдЧрдП рддрд░реНрдХреЛрдВ рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

say "$x " if $x ~~ @array; # grep $_ == $b, @$a grep $_ == $b, @$a

say "foobar " if @x ~~ /foobar/; # grep /$b/, @$a

say "$key " if $key ~~ %hash # exists $a->{$b}






рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, ~~ рд╕рднреА рдореЗрдВ рдПрдХ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдВрджрд░реНрдн-рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдХрдореАред рд╢реАрд░реНрд╖ рд▓реЗрдЦ рдореЗрдВ рд▓рд┐рдВрдХ рд╕реЗ рдкреВрд░реНрдг рд╡реНрдпрд╡рд╣рд╛рд░ рддрд╛рд▓рд┐рдХрд╛ рдЙрдкрд▓рдмреНрдз рд╣реИред



рджрд┐рдпрд╛ - рд╕реА-рдирд┐рд░реНрдорд╛рдг рд╕реНрд╡рд┐рдЪ рдХрд╛ рдПрдХ рдПрдирд╛рд▓реЙрдЧ

рдЕрдм рдпрд╣ рдирд┐рд░реНрдорд╛рдг рдмрд┐рд▓реНрдЯ-рдЗрди рд╣реИред рдпрд╣ рддреАрди рдирдП рд╢рдмреНрджреЛрдВ рджреНрд╡рд╛рд░рд╛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: рджрд┐рдП рдЧрдП, рдХрдм рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡рд╣ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╕реНрдорд╛рд░реНрдЯ рдорд┐рд▓рд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИред рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг!

#

if( $var ~~ undef ) { ... }

elsif( $var ~~ $var ) { ... }

elsif( $var ~~ @array ) { ... }

elsif( $var ~~ %hash ) { ... }

elsif( $var ~~ /regexp/ ) { ... }

else { ... }

#

given( $var ) {

when( undef ) { ... }

when( $var ) { ... }

when( @array ) { ... }

when( %hash ) { ... }

when( /regexp/ ) { ... }

default { ... }

}






рдЦреЗрд▓ "рдЕрдиреБрдорд╛рди рд╕рдВрдЦреНрдпрд╛" (:

use feature qw( switch say );

my @guessed;

my $num = int( rand 100 ) + 1;

while( my $guess = ) {

chomp $guess;

given( $guess ) {

when( /\D/ ) { say ", " }

when( @guessed ) { say " " }

when( $num ) { say " !"; last }

when( $_ < $num ) { say ""; continue }

when( $_ > $num ) { say ""; continue }

push @guessed, $_;

}

}





. (?...). тАФ \k. %+ . %-, , , .

# name=value

$str =~ /(?\w+)=(?\w+)/;

say "The value of $_ is $+{$_}" foreach keys %+;

(possessive quantifiers). - , . ┬л ┬╗ , ┬л?┬╗ ┬л+┬╗. : ?+, *+, ++, {min,max}+.








state-

C- static. state , .

sub counter {

state $i = 0;

return $i++;

}








Filetest -X



-x $file && -w _ && -f _







-f -w -x $file







тАж

. , perl5100delta.pod



:

Perl 5.10 for People Who Aren't Totally Insane What's new in Perl 5.10?















All Articles