open( A, "<", "abc" ) || die "$!\n";
@count=();
while (<A>){
$num++;
if ($_ =~ /error/i)
{$b=$num;
print "\$b is $b\n";
open( B, "<", "abc" ) || die "$!\n";
while (<B>){
print "\$. is $.\n";
if ($. == $b + 1){print "\$_ is $_\n"};
}
#close B;
};
};
Vsftp:/root# cat -n abc
1 1
2 2
3 3aA
4 313
5 error
6 4234
7 12341
8 ERROR
9 666
10 sdaad
11 error
12 313
13 3131
Vsftp:/root# perl a2.pl
$b is 5
$. is 1
$. is 2
$. is 3
$. is 4
$. is 5
$. is 6
$_ is 4234
$. is 7
$. is 8
$. is 9
$. is 10
$. is 11
$. is 12
$. is 13
$b is 8
$. is 14
$. is 15
$. is 16
$. is 17
$. is 18
$. is 19
$. is 20
$. is 21
$. is 22
$. is 23
$. is 24
$. is 25
$. is 26
$b is 11
$. is 27
$. is 28
$. is 29
$. is 30
$. is 31
$. is 32
$. is 33
$. is 34
$. is 35
$. is 36
$. is 37
$. is 38
$. is 39
文件句柄不关闭,会读完后继续读
关闭文件句柄后
Vsftp:/root# cat abc
1
2
3aA
313
error
4234
12341
ERROR
666
sdaad
error
313
3131
Vsftp:/root# perl a2.pl
$_ is 12341
$_ is sdaad
$_ is 3131
Vsftp:/root# cat a2.pl
open( A, "<", "abc" ) || die "$!\n";
@count=();
while (<A>){
$num++;
if ($_ =~ /error/i)
{$b=$num;
open( B, "<", "abc" ) || die "$!\n";
while (<B>){
if ($. == $b + 2){print "\$_ is $_\n";close B;last;};
}
};
};
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决