LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1085|回复: 4

#除了注释还有什么意思?

[复制链接]
发表于 2006-8-11 15:39:24 | 显示全部楼层 |阅读模式
今天看别人的代码,是文本处理的,在s后面有好多#,不清楚什么意思,查文档也查不到,谁知道是什么意思?
s/应该是模式匹配里的替换开关,可是为什么后面是#呢,而且最后也是#。。。

        $name =~ s#.*/##;       
         s#//.*\n##g;
还有m后面也有#,晕了。。。
         m#^\s*//#;
        s#/\*.*\*/##;
发表于 2006-8-11 16:51:32 | 显示全部楼层
楼主不要客气,尽管尽量把源代码给我们看看
经过你修改的代码,我也看不懂。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-8-11 17:50:52 | 显示全部楼层
呵呵~
不好意思呀,我以为只是一些语法上的东西,所以没有贴。

只见过s/,就是s#这种东西我没有见过,在perl的模式匹配里替换的语法是这样的:s/pattern/replacement/,所以我猜测是不是用#代替了/,但是我把所有的#替换成了#运行的时候有错误。不知用意何在,大家见过这种写法吗?

#!/usr/bin/perl

$help = 1 unless @ARGV;   // 命令行参数

foreach (@ARGV)
{
        $help = 1 if /^-h(elp)?$/i;
        push @files, $_ if (/^\S+.v$/ && -e $_ && -f _);       
}
@files = () if $all;

if ($help)
{
        $name = $0;
        $name =~ s#.*/##;
        print <<msg;
  Display some help infomation...

Note:  The output file is ".inst"
Usage:
$name                #this help
$name -h             #this help
$name -help          #this help
$name m1.v           #generate instance of modules in m1.v

msg
exit;
}

open FO, ">.inst";
print "output file: .inst\n\n";

foreach $file(@files)
{ do_inst($file); }


close FO;

sub do_inst()
{
        my $file = $_[0];
        open FI, "$file" || die "$!";
        @fifo = (<FI>);
        close FI;

        print "Dealing $file ... \n";

        $_ = join "", @fifo;
        s#//.*\n##g;                                                                      #Here, what's the mean #....
        s#`timescale.*##;
        s#task(.|\n)*endtask##g;
        s#`(include|define|ifdef|else|endif).*##g;
        s#^\s*##;
        s#\s*$##;
       
               @modules = split /endmodule/, $_;
        foreach (@modules)
        {
           
                }
}
回复 支持 反对

使用道具 举报

发表于 2006-8-11 18:44:25 | 显示全部楼层
s/pattern/replacement/
上面这个是最普通的写法,其他的比如
s###
s???
s!!!
s{}{}
s<pattern>/replacement/
之类的,都是可以的,等价的
比如你的匹配模式里面有"/",那么使用s###的话就比较方便,不用写那么多"\/"
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-8-11 21:30:14 | 显示全部楼层
哦 原来这样,谢谢楼上呀:)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表