Perl Programming – Appendix

19
Perl Programming – Appen Perl Programming – Appen dix dix There’s more than one way to do it Keep easy things easy and the hard possible

description

Perl Programming – Appendix. There ’ s more than one way to do it Keep easy things easy and the hard possible. Problem 1: Regex Example. $_ = “ this is a test”; /(\w+)\W+(\w+)/;# match first two words, # $1 = “this”, $2 = “is” print “$1, $2\n”;. $_ = “ this is a sample string ”; - PowerPoint PPT Presentation

Transcript of Perl Programming – Appendix

Page 1: Perl Programming  –  Appendix

Perl Programming – AppendixPerl Programming – Appendix

There’s more than one way to do it

Keep easy things easy and the hard possible

Page 2: Perl Programming  –  Appendix

Com

pu

ter C

en

ter, C

S, N

CTU

2

Problem 1: Regex Example

$_ = “this is a test”;/(\w+)\W+(\w+)/; # match first two words,

# $1 = “this”, $2 = “is”print “$1, $2\n”;

$_ = “this is a sample string”;/sa.*le/; # $` = “this is a ”

# $& = “sample”# $’ = “ string”

Page 3: Perl Programming  –  Appendix

Com

pu

ter C

en

ter, C

S, N

CTU

3

Regex Example: Date Extraction

#!/usr/bin/perl $date = `date`; print "$date"; # 2008 年 2 月 29 日 周五 11 時 27 分 16 秒

CST $date =~ /^(\d+)\D+(\d+)\D+(\d+)\S+\s+ 周 (\S+)/; %hash = (

year => $1, month => $2, day => $3, weekday => $4, ); for (keys %hash) { print "$_ => $hash{$_}\n"; }

Page 4: Perl Programming  –  Appendix

Com

pu

ter C

en

ter, C

S, N

CTU

4

One-Line Perl Execution

Page 5: Perl Programming  –  Appendix

Com

pu

ter C

en

ter, C

S, N

CTU

5

Problem 2: File Handler

An interface to file access

File handler in C

File handler in Perl

File HandlerUser

File Name

Access Mode

Flags

Read, write

FILE *fp = fopen("count.dat","r");fgets(numb, 8, fp);

open FH, “count.dat” or die “open file failure: $!”;$numb = <FH>;

Page 6: Perl Programming  –  Appendix

Com

pu

ter C

en

ter, C

S, N

CTU

6

Problem 3: <>

while (<>) { print }

Using diamond operator <>• Get data from files specified on the command line

$ARGV records the current filename@ARGV shifts left to remove the current filename

• Otherwise read from STDIN

while (<FH>) { print }• Read from file handler FH

Page 7: Perl Programming  –  Appendix

Com

pu

ter C

en

ter, C

S, N

CTU

7

CPAN

If you see similar errors on execution of perl…

• Your @INC is incorrect, or

• You need to install the required modules

We can install modules from command line tool• cpan

Useful tool to install modules in CYGWIN

Page 8: Perl Programming  –  Appendix

Com

pu

ter C

en

ter, C

S, N

CTU

8

On the first use we should set up configuration

<Enter>

Page 9: Perl Programming  –  Appendix

Com

pu

ter C

en

ter, C

S, N

CTU

9

<Enter>

<Enter>

Page 10: Perl Programming  –  Appendix

Com

pu

ter C

en

ter, C

S, N

CTU

10

Keep <ENTER>…

Page 11: Perl Programming  –  Appendix

Com

pu

ter C

en

ter, C

S, N

CTU

11

Change PREFIX!

PREFIX is where to install your modules.If you don’t understand, <ENTER>For non-root users, my setting is ~/perl/module/

Still keep <ENTER> until…

Page 12: Perl Programming  –  Appendix

Com

pu

ter C

en

ter, C

S, N

CTU

12

Select the nearest CPAN site

2

Page 13: Perl Programming  –  Appendix

Com

pu

ter C

en

ter, C

S, N

CTU

13

Page 14: Perl Programming  –  Appendix

Com

pu

ter C

en

ter, C

S, N

CTU

14

Install desired modules:

After installation, type “quit” to leave cpan

Page 15: Perl Programming  –  Appendix

Com

pu

ter C

en

ter, C

S, N

CTU

15

Some Useful Built-in

system "tail -20 $ENV{HOME}/mail/procmail.log"; exec “rm -f file”;

sleep 3; select undef, undef, undef, 3;

$char = getc ; perl -e 'system("stty raw");getc‘

exit 1; die “error msg: $!”;

# sleep 3 seconds

# need to wait ENTER

# immediate return on keystroke

Page 16: Perl Programming  –  Appendix

Com

pu

ter C

en

ter, C

S, N

CTU

16

Demo: Pdir, BBS like directory handler

Page 17: Perl Programming  –  Appendix

Com

pu

ter C

en

ter, C

S, N

CTU

17

Demo: Process Killer

Page 18: Perl Programming  –  Appendix

Com

pu

ter C

en

ter, C

S, N

CTU

18

Demo: wxPerl + OpenGL

Page 19: Perl Programming  –  Appendix

Com

pu

ter C

en

ter, C

S, N

CTU

19

Demo: Kephra using wxPerl on Windows