Perl Language(IV)Regular and Control

Perl Language(IV)Regular and Control

7. Regular statement(regex)
$string =~ m/$patten/
$string =~ m{$patten}
$string =~ m|$patten|
$string =~ m!$patten!
$string =~ /$patten/

my $answer = "monger";
until ((my $patten = <STDIN>) =~ /$answer/) {   
    print "wrong\n";
};

my $answer = "mo*r"; 
while (1) {   
    if ((my $patten = <STDIN>) =~ /$answer/) { 
        print "*match*\n";
    } else {
        print "*not match*\n";
    }
};

my $answer = "mo{2,4}r";

my $answer = "(wow)+";

8. More Regex
/f(oo|ee)t/    # foot or feet
/on (March|April|May)/

$content =~ /[pP]erl/;

$content =~ /perl/i;     # charactor 'i' is for ignore the Capital letter

my $content = "I like perl I am a perl monger";
if ($content =~/I like(.*)monger/) {
    print "*$1*\n";
}

We can get all the charactors between 'like' and 'monger'

8.7. Compare and Replace
my $content = "I love Java";
print $content if ($content =~ s/java/perl/i);

console output:
I love perl

s is for replacing. i is for ignoring the Capital charactors.

my $content = "I love Perl. I am a perl monger";
print $content if ($content =~ s/perl/Perl/gi);

console output:
I love Perl. I am a Perl monger

g is for all.

8.8. Replacing in our own string
my $string = "123456";
print $string if ($string =~ s/(1)(2)(3)(4)(.*)/$3$2$1$4$5/);

console output:
321456

9. Flow Control
9.1.1 last
break the loop.

for (1...10) {
    last if ($_ == ;
    print $_;
}

console output:
1234567

9.1.2 redo
redo the things in loop
for (1...10) {
    $_++; 
    redo if ($_ == ;
    print $_ . " ";      
}

console output:
2 3 4 5 6 7 9 9 10 11

9.1.3 next
omit the current loop
for (1...10) {
    next if ($_%2); 
    print $_ . " ";
}

console output:
2 4 6 8 10


references:
http://easun.org/perl/perl-toc/
http://perl.apache.org/

你可能感兴趣的:(apache,F#,perl,OO)