- 论坛徽章:
- 1
|
方法有三:
1,模式匹配时记录匹配结果,这是最常用的:
- my $var = "abcdefg";
- my @matchs = $var =~ /(a)(b)(c)(d)(.{0})efg/;
- foreach my $match (@matchs){
- print $match, "\n";
- }
复制代码
2,用 @- @+ 两个变量就可以取到,这个方法很少有人知道,没什么用处,也很少有人使用。
- my $var = "abcdefg";
- $var =~ /(a)(b)(c)(d)(.{0})efg/;
- foreach my $i (1..$#-) {
- print substr( $var, $-[$i], $+[$i]-$-[$i] ), "\n";
- }
复制代码
3,用 no strict 'refs' 临时打开符号引用,然后构造符号引用:
- my $var = "abcdefg";
- $var =~ /(a)(b)(c)(d)(.{0})efg/;
- foreach my $i (1..100){
- no strict 'refs';
- last if not defined $$i;
- print $$i, "\n";
- }
复制代码
[ 本帖最后由 flw 于 2007-1-27 13:49 编辑 ] |
|