免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1578 | 回复: 2
打印 上一主题 下一主题

关于匹配变量的作用域的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-09-17 12:41 |只看该作者 |倒序浏览
#! D:/Program Files/Perl/bin/perl.exe -W

use strict;

my $match_one;
my $match_two;

if(open(SITE_IN, "E:/Projects/Perl/site_inurl.txt" || die "$!"
{
        if(open(URL_FILE, "E:/Projects/Perl/url.txt" || die "$!"
        {
                foreach (<SITE_IN>
                {
                        if( m{^site.+) inurl:/(.+)} )
                        {
                                $match_one = $1;
                                $match_two = $2;

                                foreach(<URL_FILE>
                                {
                                        if( m{$match_one.*$match_two} )
                                        {
                                                print $_;
                                        }
                                }
                        }
                }
        }
}

close(SITE_IN);
close(URL_FILE);

WINDOWS上写的,第一行无视吧,我自己创造的,应该对吧?呵呵

问题是

$match_one = $1;
$match_two = $2;

因为如果直接在下面的正则里用$1, $2,perl会给出一堆警告,而且结果也不对了,求解,还是说必须要像现在这样?

论坛徽章:
0
2 [报告]
发表于 2009-09-17 13:55 |只看该作者
$1,$2这种是localized的

论坛徽章:
0
3 [报告]
发表于 2009-09-17 16:18 |只看该作者
读FILEHANLD时使用while.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP