Perl 遍历问题

forum2621 2011-06-03 01:38:24
现有一个文件夹,此文件夹下面有result.txt.1,result.txt.2...result.txt.n 这些文件,n为编号,现在要求遍历此文件夹,并取出编号最大的文件名。
My_PATH路径是通过其他方法传过来的,不能写死

use strict;
my $My_PATH="E:\\test";
my @resulttxts = <$My_PATH."/".result.txt.*>;
my $result_index=1;
for my $conf_file (@resulttxts){
if($conf_file=~/result.txt.(\d)$/ || $conf_file=~/result.txt.(\d\d)$/)
{
#print $1."\n";
if($1 >= $result_index){
$result_index=$1;
}
}
}
my $result_out ="result.txt."."$result_index";
print "file: $result_out\n";

不知道为什么,路径就认不出来
my @resulttxts = <$My_PATH."/".result.txt.*>; 改写成 my @resulttxts = <E:/test/result.txt.*>;就可以
...全文
145 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
dontbecoder 2011-06-17
  • 打赏
  • 举报
回复
use File::Find;

写个范例供参考:
sub dir{
if (-d $File::Find::name)
{
if($_ eq ".svn")
{
system("rmdir /q/s $_");
$count++;
}
print "$File::Find::name\n";
}
}

find(\&dir,$path);
getline 2011-06-05
  • 打赏
  • 举报
回复
#/usr/bin/perl
use strict;
use warnings;

my $My_PATH="E:\\test\\";
opendir DIR, $My_PATH or die $!;
my @file = grep {/result.txt.\d{1,}/} readdir DIR;
my @sort_file = map {$_->[3]}
sort {$b->[2] <=> $a->[2]}
map {[split (/\./), $_]} @file;
my $maxNO_file = $sort_file[0];
print $maxNO_file,"\n";
fibbery 2011-06-04
  • 打赏
  • 举报
回复
除了用iambic所说的glob,也可以使用opendir来打开一个目录并读取目录中的文件列表,参见:
perldoc -f opendir
或者:
http://search.cpan.org/~jesse/perl-5.14.0/pod/perlfunc.pod
iambic 2011-06-03
  • 打赏
  • 举报
回复
my @resulttxts = glob "$My_PATH/result.txt.*";

自己测试下有没有空格问题。
forum2621 2011-06-03
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 iambic 的回复:]

用glob函数吧。
[/Quote]
我对perl一窍不通,我那个代码还是网上找的,自己改的,能否帮写个?
forum2621 2011-06-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 horsley 的回复:]

unix 下文件路径用 / 分隔,windows 下用 \
perl 下可以统一用 / ,你的代码中两种方式混用,肯定要出问题。
[/Quote]
我这个程序是要在windows下跑的,路径是传过来的,格式就是windows下的路径格式。
改成这个样式,还是过不去啊

my @resulttxts = <$My_PATH."\\".trail.txt.*>;
iambic 2011-06-03
  • 打赏
  • 举报
回复
用glob函数吧。
horsley 2011-06-03
  • 打赏
  • 举报
回复
unix 下文件路径用 / 分隔,windows 下用 \
perl 下可以统一用 / ,你的代码中两种方式混用,肯定要出问题。

37,743

社区成员

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

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