初学Perl语言,有两个小问题请教下。

鸣鸣Amadues 2011-10-23 07:06:26

想做一个小程序,读取一个文件

1,如何得到这个文件有多少行包括空行,有没有预设的变量,还是需要自己写逻辑获得。
2,如何对每一行进行搜索指定的string,比如搜索"mystudent",并且返回一共有多少行包含这个string

刚刚学perl,希望大虾们能说得详细点,最好有简单的sample 代码,我已经被perl的一堆堆符号搞得晕头转向了
...全文
52 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ljc007 2011-10-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 raffin 的回复:]
我解决了,谢谢ls
不过,<FILE>,尖括号是什么意思呢?
[/Quote]

用句柄FILE去获取输入流
ljc007 2011-10-24
  • 打赏
  • 举报
回复
use strict;
use warnings;
my $string = "abc";
my $numBlank;
my $numStr;
while (<DATA>)
{
chomp;
if (/^\s*$/)
{
$numBlank++;
}
elsif (/$string/)
{
$numStr++;
}
}
print "$numBlank, $numStr\n";
__DATA__
abcabcabc

bc
abcabc
ljc007 2011-10-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 raffin 的回复:]
我解决了,谢谢ls
不过,<FILE>,尖括号是什么意思呢?
[/Quote]

句柄
用FILE去捕获输入流
鸣鸣Amadues 2011-10-24
  • 打赏
  • 举报
回复
我解决了,谢谢ls
不过,<FILE>,尖括号是什么意思呢?
鸣鸣Amadues 2011-10-24
  • 打赏
  • 举报
回复

open (FILE, "<$ARGV[0]") or die "Can't open '$ARGV[0]': $!";

while(<FILE>)
{
$line_number++;
}

close (FILE);



print "$ARGV[0] contains $line_number lines\n";
imeuyniy 2011-10-24
  • 打赏
  • 举报
回复
#!/bin/perl
use strict;
my $string="abc";
my $line;
while(<DATA>){
chomp;

if(/^\s*$/) {$line++;}
else{
my $count=0;
print "LINE$.: counts of \"$string\": ",s/$string//g,"\n";
}
}


print "total blank lines: ",$line,"\n";
__DATA__
abcabcabc

abc
abcabc
imeuyniy 2011-10-24
  • 打赏
  • 举报
回复
#!/bin/perl
use strict;
my $string="abc";
my $line;
while(<DATA>){
chomp;

if(/^\s*$/) {$line++;}
else{
my $count=0;
print "LINE$.: counts of \"$string\": ",s/$string//g,"\n";
}
}


print "total blank lines: ",$line,"\n";
__DATA__
abcabcabc

abc
abcabc
iambic 2011-10-23
  • 打赏
  • 举报
回复
那是因为你没看过书吧。

37,721

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧