- 论坛徽章:
- 0
|
原帖由 ForeverZJay 于 2009-5-8 17:16 发表 ![]()
我已经尝试写着两个问题的代码,都无法成功执行,我再一下提供我做的两个代码,如果可以请高手帮忙指教,指出那里的错误,谢谢!
1.foreach $arg (@ARGV)
{
if($arg=~m/(\d+)/)
{
$result.=$1;
wh ...
第一段程序是可行的,不知LZ执行时是出什么错误,但既然知道$',为何不直接用$&
第二段程序,看题目只是说要匹配的字串是大小写不敏感,并没有说name是大小写不敏感的,而且如果命令行参数传的字串带有特殊字符,这个正则就有可能出错
#!/usr/bin/perl -w
use strict;
my $result;
foreach my $arg (@ARGV) {
while($arg =~ m/\d+/g){
$result .= $&;
}
}
print "result=$result\n"; |
#!/usr/bin/perl -w
use strict;
open (INFILE, $ARGV[0]) || die "can't open the file $!n";
while (<INFILE>){
if ($_ =~ m/^name:.*(?i)\Q$ARGV[1]/){
print $_;
}
} |
BTW, "-bash-4.0.$"是shell提示符,因为打印2302的时候没有换行执行结果是: 2302-bash-4.0.$ , 而不是直接得到2302??
[ 本帖最后由 iceberg77 于 2009-5-18 15:20 编辑 ] |
|