perl 5.10

119
Perl 5.10

Upload: andysh

Post on 18-Nov-2014

1.222 views

Category:

Technology


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Perl 5.10

Perl 5.10

Page 2: Perl 5.10

5.000 17 October 1994

5.6.0 22 March 2000

5.8.0 18 July 20025.8.8 31 January 2006

5.10 18 December 2008

Versions of Perl (perlhist)

Page 3: Perl 5.10

5.000 17 October 1994

5.6.0 22 March 2000

5.8.0 18 July 20025.8.8 31 January 2006

5.10 18 December 2008

6.0 ?

Versions of Perl (perlhist)

Page 4: Perl 5.10

5.000 17 October 1994

5.6.0 22 March 2000

5.8.0 18 July 20025.8.8 31 January 2006

5.10 18 December 2008

6.0 Сhristmas

Versions of Perl (perlhist)

Page 5: Perl 5.10

5.000 17 October 1994

5.6.0 22 March 2000

5.8.0 18 July 20025.8.8 31 January 2006

5.10 18 December 2008

6.0 2000

Versions of Perl (perlhist)

Page 6: Perl 5.10

usefeature

Page 7: Perl 5.10

usefeatureqw(sayswitchstate);

Page 8: Perl 5.10

usefeatureqw(sayswitchstate);

usefeature":5.10";

Page 9: Perl 5.10

usefeatureqw(sayswitchstate);

usefeature":5.10";use5.10.0;

Page 10: Perl 5.10

usefeatureqw(sayswitchstate);

usefeature":5.10";usev5.10.0;

Page 11: Perl 5.10

#!/perl5.10/bin/perl

usefeature"***";

Page 12: Perl 5.10

#!/perl5.10/bin/perl

usefeature"say";say"Perl6?";

Page 13: Perl 5.10

#!/perl5.10/bin/perl

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

Page 14: Perl 5.10

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

Page 15: Perl 5.10

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

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

Page 16: Perl 5.10

//

defined‐or

Page 17: Perl 5.10

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

Page 18: Perl 5.10

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

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

Page 19: Perl 5.10

my$_;

Page 20: Perl 5.10

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

Page 21: Perl 5.10

$::_

Page 22: Perl 5.10

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

Page 23: Perl 5.10

our$_;

Page 24: Perl 5.10

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

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

usefeature'switch';

Page 29: Perl 5.10

usefeatureqw(switchsay);

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

Page 30: Perl 5.10

usefeatureqw(switchsay);

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

Page 31: Perl 5.10

when(123)

when($value)

when(undef)

when([2001..2100])

when(/\d+/)

Page 32: Perl 5.10

when($_>0)

when(int)

when(int$_)

when(\&test_the_value)

when(test_the_value($_))

Page 33: Perl 5.10

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

Page 34: Perl 5.10

when($what)

==when($_~~$what)

Page 35: Perl 5.10

$left~~$right

==$right~~$left

Page 36: Perl 5.10

usefeature'state';

Page 37: Perl 5.10

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

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

Page 38: Perl 5.10

Regular Expressions

Page 39: Perl 5.10

Named saving parens

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

say$1;Thusay$4;2008

Page 40: Perl 5.10

Named saving parens

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

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

Page 41: Perl 5.10

Named saving parens

my$date='Thu15April2008';

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

/$+{year}+1/xe;

say$date;Thu15April2009

Page 42: 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 43: 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 44: Perl 5.10

my$leap_years='1992199620042008';

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

/gx;

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

Page 45: Perl 5.10

my$leap_years='1992199620042008';

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

/gx;

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

Page 46: Perl 5.10

usefeature'say';

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

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

Page 47: Perl 5.10

Posessive quantifiers

?+*+++

{min,max}+

Page 48: Perl 5.10

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

Page 49: Perl 5.10

(?|...)

Page 50: Perl 5.10

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

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

'April,2008'=~$re;say"$4.$5";

Page 51: Perl 5.10

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

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

'April,2008'=~$re;say"$1.$2";

Page 52: Perl 5.10

\g{N}\gN

Page 53: Perl 5.10

\g{‐N}

Page 54: Perl 5.10

\k<named>

==\g{named}

Page 55: Perl 5.10

\K

Page 56: Perl 5.10

\v\h

Page 57: Perl 5.10

\V\H

Page 58: Perl 5.10

\R

Page 59: Perl 5.10

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

Page 60: Perl 5.10

~~Smart matching

Page 61: Perl 5.10

$a~~$b==

$b~~$a

Page 62: Perl 5.10

my$b;

$b~~undef

!defined$b

Page 63: Perl 5.10

my$c='abc';

$c~~'abc'

$ceq'abc'

Page 64: Perl 5.10

my$c='abc';

$c~~/b/

$c=~/b/

Page 65: Perl 5.10

my@a=(1..3);my@b=(1..3);

@a~~@b

1==1&&2==2&&3==3

Page 66: Perl 5.10

my@a=(1..3);my@b=(1..3);my@c=(3..5);

@a~~@c

1==3&&2==4&&3==5

Page 67: Perl 5.10

my@d=(123,'abc');my@e=(qr/\d/,qr/\w/);

@d~~@e

123~~/\d/&&'abc'~~/\w/

Page 68: Perl 5.10

my@f=('a'..'f');

@f~~'d'

grep{$_eq'd'}@f

Page 69: Perl 5.10

my@g=(1..10);

@g~~7

grep{$_==7}@g

Page 70: Perl 5.10

my@g=(1..10);

@g~~7.0

grep{$_==7.0}@g

Page 71: Perl 5.10

my@g=(1..10);

@g~~'7.0'

grep{$_eq'7.0'}@g

Page 72: Perl 5.10

my@g=(1..10);

@g~~/^\d$/

grep{$_=~/^\d$/}@g

Page 73: Perl 5.10

3.14~~'3.14'

3.14=='3.14'

Page 74: Perl 5.10

3.14~~'3.14%'

3.14=='3.14%'

Page 75: Perl 5.10

subsubA{return2}subsubB{return2}

subA~~subB

subA()==subB()

Page 76: Perl 5.10

subsubA{return2}my$subA1_ref=\&subA;my$subA2_ref=\&subA;

$subA1_ref~~$subA2_ref

$subA1_ref==$subA2_ref

Page 77: Perl 5.10

subsubA{return2}my$subA_ref=\&subA;

$a~~$subA_ref

$subA_ref‐>($a)

Page 78: Perl 5.10

subsubA{return2}my$subA_ref=\&subA;

‐1~~$subA_ref

$subA_ref‐>(‐1)

Page 79: Perl 5.10

my%h=(a=>'alpha',b=>'beta');

%h~~'a'

exists$h{'a'}

Page 80: Perl 5.10

my%h=(a=>'alpha',b=>'beta');my@f=('a'..'f');

%h~~@f

grep{$_}@h{@f}

Page 81: Perl 5.10

my%h=(a=>'alpha',b=>'beta');

%h~~/[A‐F]/i

grep{/[A‐F]/i}keys%h

Page 82: Perl 5.10

my%h=(a=>'alpha',b=>'beta');my%hh=(b=>1,a=>2);

%h~~%hh

[sortkeys%h]~~[sortkeys%hh]

Page 83: Perl 5.10

Elements of Perl 6in Perl 5.10

Page 84: Perl 5.10

Elements of Perl 6in Perl 5.10

and differencies

Page 85: Perl 5.10

say

Page 86: Perl 5.10

my$x='HRPW2008';say$x;

Page 87: Perl 5.10

my$x='HRPW2008';say$x;

HRPW2008

5.10

Page 88: Perl 5.10

my$x='HRPW2008';say$x;

HRPW2008

6

Page 89: Perl 5.10

my$x='HRPW2008';say($x);

5.10

Page 90: Perl 5.10

my$x='HRPW2008';say($x);

HRPW2008

5.10

Page 91: Perl 5.10

my$x='HRPW2008';say($x);

HRPW2008

6

Page 92: Perl 5.10

my$x='HRPW2008';say($x);

HRPW2008

6

Page 93: Perl 5.10

my$x='HRPW2008;$x.say;

HRPW2008

6

Page 94: Perl 5.10

my$x='HRPW2008';$x.say;

5.10

Page 95: Perl 5.10

my$x='HRPW2008';$x.say;

5.10

String concatenation!

Page 96: Perl 5.10

my$x='HRPW2008';$x.say();

HRPW2008

6

Page 97: Perl 5.10

$_

Page 98: Perl 5.10

for(1..3){say;}

Page 99: Perl 5.10

for(1..3){say;}123

5.10

Page 100: Perl 5.10

for(1..3){say;}\n\n\n

6

Page 101: Perl 5.10

for(1..3){say$_;}123

6

Page 102: Perl 5.10

for(1..3){$_.say;}123

6

Page 103: Perl 5.10

for(1..3){.say;}123

6

Page 104: Perl 5.10

switch

Page 105: Perl 5.10

my$str="YAPC::Asia";given($str){when(/Asia/){say"Asia"}

}

5.10, 6

Page 106: Perl 5.10

my$str="YAPC::Asia";given($str){when(/Asia/){say"Asia"}

}

5.10, 6

Page 107: Perl 5.10

my$str="YAPC::Asia";given($str){when(/Asia/){say"Asia"}

}

6

Page 108: Perl 5.10

my$str="YAPC::Asia";given$str{when/Asia/{say"Asia"}

}

6

Page 109: Perl 5.10

my$str="YAPC::Asia";given$str{say"Asia"when/Asia/}

6

Page 110: Perl 5.10

state

Page 111: Perl 5.10

subf{state$c;say++$c;}

Page 112: Perl 5.10

subf{state$c;say++$c;}f();f();f();

Page 113: Perl 5.10

subf{state$c;say++$c;}f();f();f();

123

5.10

Page 114: Perl 5.10

subf{state$c;say++$c;}f();f();f();

123

6

Page 115: Perl 5.10

subf{state$c=0;say++$c;}f();f();f();

Page 116: Perl 5.10

subf{state$c=0;say++$c;}f();f();f();

123

5.10

Page 117: Perl 5.10

subf{state$c=0;say++$c;}f();f();f();

111

pugs

Page 118: Perl 5.10
Page 119: Perl 5.10

__END__

Andrew [email protected] | http://andy.sh

Croatian Perl Workshop, Zagreb, 2008