perl programming – appendix
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 PresentationTRANSCRIPT
Perl Programming – AppendixPerl Programming – Appendix
There’s more than one way to do it
Keep easy things easy and the hard possible
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”
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"; }
Com
pu
ter C
en
ter, C
S, N
CTU
4
One-Line Perl Execution
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>;
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
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
Com
pu
ter C
en
ter, C
S, N
CTU
8
On the first use we should set up configuration
<Enter>
Com
pu
ter C
en
ter, C
S, N
CTU
9
<Enter>
<Enter>
Com
pu
ter C
en
ter, C
S, N
CTU
10
Keep <ENTER>…
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…
Com
pu
ter C
en
ter, C
S, N
CTU
12
Select the nearest CPAN site
2
Com
pu
ter C
en
ter, C
S, N
CTU
13
Com
pu
ter C
en
ter, C
S, N
CTU
14
Install desired modules:
After installation, type “quit” to leave cpan
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
Com
pu
ter C
en
ter, C
S, N
CTU
16
Demo: Pdir, BBS like directory handler
Com
pu
ter C
en
ter, C
S, N
CTU
17
Demo: Process Killer
Com
pu
ter C
en
ter, C
S, N
CTU
18
Demo: wxPerl + OpenGL
Com
pu
ter C
en
ter, C
S, N
CTU
19
Demo: Kephra using wxPerl on Windows