Новое в perl 5.10

62
Perl 5.10

Upload: andysh

Post on 11-Jun-2015

509 views

Category:

Technology


5 download

TRANSCRIPT

Page 1: Новое в Perl 5.10

Perl 5.10

Page 2: Новое в Perl 5.10

CPANperl-5.10.0-RC1

Page 3: Новое в Perl 5.10

#!/perl5.10/bin/perl

>perl5.10script.pl

Page 4: Новое в Perl 5.10

usefeature

Page 5: Новое в Perl 5.10

usefeatureqw(sayswitchstate);

Page 6: Новое в Perl 5.10

usefeatureqw(sayswitchstate);

usefeature":5.10";

Page 7: Новое в Perl 5.10

usefeatureqw(sayswitchstate);

usefeature":5.10";use5.10.0;

Page 8: Новое в Perl 5.10

usefeatureqw(sayswitchstate);

usefeature":5.10";usev5.10.0;

Page 9: Новое в Perl 5.10

#!/perl5.10/bin/perl

usefeature"***";

Page 10: Новое в Perl 5.10

#!/perl5.10/bin/perl

usefeature"say";say"Perl6?";

Page 11: Новое в Perl 5.10

#!/perl5.10/bin/perl

usefeature"say";say"Perl6?";nofeature"say";

Page 12: Новое в Perl 5.10

>perl5.10‐e\"usefeatureqw(say);say$$;"

Page 13: Новое в Perl 5.10

>perl5.10‐e\"usefeatureqw(say);say$$;"

>perl5.10‐E"say$$;"

Page 14: Новое в Perl 5.10

//

defined‐or

Page 15: Новое в Perl 5.10

my$a;my$b=$a//2;say$b;2

Page 16: Новое в Perl 5.10

my$c=0;my$d=$c//3;say$d;0

my$e=0;my$f=$e||4;say$f;4

Page 17: Новое в Perl 5.10

my$_;

Page 18: Новое в Perl 5.10

for(1..5){my$_='*';print;}*****

Page 19: Новое в Perl 5.10

$::_

Page 20: Новое в Perl 5.10

for(1..5){my$_='*';print$::_;}12345

Page 21: Новое в Perl 5.10

our$_;

Page 22: Новое в Perl 5.10

for(1..5){our$_='*';print$::_;}*****

Page 23: Новое в Perl 5.10

>perl5.10‐E\"sayfor1..3"

>perl6‐e\"sayfor1..3"

Page 24: Новое в Perl 5.10

>perl5.10‐E\"sayfor1..3"

>perl6‐e\"sayfor1..3"

123

\n\n\n

Page 25: Новое в Perl 5.10

usestrict'refs';my$x='***';print1ifdefined$$x;

Page 26: Новое в Perl 5.10

usestrict'refs';my$var='***';printdefined$$var?'yes':'no';

>perl5.8.8test.plno

Page 27: Новое в Perl 5.10

usestrict'refs';my$var='***';printdefined$$var?'yes':'no';

>perl5.10test.plCan'tusestring("xxx")asaSCALARrefwhile"strictrefs"inuseattest.plline3.

Page 28: Новое в Perl 5.10

~~

Page 29: Новое в Perl 5.10

usefeature'say';

my$date='Thu22November,2007';say'Today'if$date~~/Thu/;

Page 30: Новое в Perl 5.10

usefeature'switch';

Page 31: Новое в Perl 5.10

usefeatureqw(switchsay);

my$tag='perlrus08';given($tag){when('perlrus08'){say'Yes';}}

Page 32: Новое в Perl 5.10

usefeatureqw(switchsay);

my$tag='perlrus08';given($tag){when('perlrus08'){say'Yes';}default{say'No';}}

Page 33: Новое в Perl 5.10

when(123)

when($value)

when(undef)

when([2001..2100])

when(/\d+/)

Page 34: Новое в Perl 5.10

when($_>0)

when(int)

when(int$_)

when(\&test_the_value)

when(test_the_value($_))

Page 35: Новое в Perl 5.10

given('perlrus08'){when(/\d+/){say'digits';continue;}when(/perl/i){say'Perl';}}

Page 36: Новое в Perl 5.10

when($what)

==when($_~~$what)

Page 37: Новое в Perl 5.10

$left~~$right

==$right~~$left

Page 38: Новое в Perl 5.10

usefeature'state';

Page 39: Новое в Perl 5.10

subcounter{state$value=0;$value++;say$value;}

counter();1counter();2counter();3

Page 40: Новое в Perl 5.10

Регулярныевыражения

Page 41: Новое в Perl 5.10

Именованныебуферы

my$date='Thu22November2007';$date=~/(\w+)\s+(\d+)\s+(\w+)\s+(\d{4})/x;

say$1;Thusay$4;2007

Page 42: Новое в Perl 5.10

Именованныебуферы

my$date='Thu22November2007';$date=~/(?<wday>\w+)\s+(?<day>\d+)\s+(?<month>\w+)\s+(?<year>\d{4})/x;

say$+{wday};Thusay$+{year};2007

Page 43: Новое в Perl 5.10

Именованныебуферы

my$date='Thu22November2007';

$date=~s/(?<year>\d{4})

/$+{year}+1/xe;

say$date;Thu22November2008

Page 44: Новое в Perl 5.10

my$code='my$value=100;say$value;';

$code=~s/my\s*(?<variable>\$[a‐z]+)\s*=\s*(?<value>[^;]+)\s*;\s*(?<other_code>.*?)(\k<variable>)/$+{other_code}$+{value}/x;

say$code;say100;

Page 45: Новое в Perl 5.10

my$leap_years='1992199620042008';

$leap_years=~m/(?<year>1\d{3})\s*(?<year>2\d{3})/x;

say$_for@{$‐{year}};19962004

Page 46: Новое в Perl 5.10

my$leap_years='1992199620042008';

$leap_years=~m/(?<year>1\d{3})

/gx;

say$_for@{$‐{year}};1992

Page 47: Новое в Perl 5.10

my$leap_years='1992199620042008';

$leap_years=~m/(?<year>1\d{3}\s*)+

/gx;

say$_for@{$‐{year}};1996

Page 48: Новое в Perl 5.10

usefeature'say';

my$expr='1+(2+(3+(4+5)+6))';

$expr=~s/\(([^()]+)|(?1)\)/say$1;/xge;

Page 49: Новое в Perl 5.10

Posessivequantifiers

?+*+++

{min,max}+

Page 50: Новое в Perl 5.10

/"(?:[^"\\]++|\\.)*+"/x

Page 51: Новое в Perl 5.10

(?|...)

Page 52: Новое в Perl 5.10

my$re=qr/(\d{4})(\d\d)(\d\d)|(\w+),\s*(\d{4}))/x;

'20071122'=~$re;say"$1.$2.$3";

'November,2007'=~$re;say"$4.$5";

Page 53: Новое в Perl 5.10

my$re=qr/(?|(\d{4})(\d\d)(\d\d)|(\w+),\s*(\d{4})))/x;

'20071122'=~$re;say"$1.$2.$3";

'November,2007'=~$re;say"$1.$2";

Page 54: Новое в Perl 5.10

\g{N}\gN

Page 55: Новое в Perl 5.10

\g{‐N}

Page 56: Новое в Perl 5.10

\k<named>

==\g{named}

Page 57: Новое в Perl 5.10

\K

Page 58: Новое в Perl 5.10

\v\h

Page 59: Новое в Perl 5.10

\V\H

Page 60: Новое в Perl 5.10

\R

Page 61: Новое в Perl 5.10

\R (?>\x0D\x0A?|[\x0A‐\x0C\x85\x{2028}\x{2029}])

Page 62: Новое в Perl 5.10

__END__

__DATA__АндрейШитов—[email protected]|http://shitov.ru