菜鸟问题!

菜鸟问题!

我现在有几个文件,如:01.txt  ,02.txt ,03.txt ,08.txt ,15.txt
读取一个文件用 open(FP,"01.txt");
读取下一个还要手动更换文件名啊!
有没有朋友知道一个函数或者其他方法让程序自己继续读下去啊.


[Copy to clipboard] [ - ]
CODE:
foreach qw (01.txt  ,02.txt ,03.txt ,08.txt ,15.txt){
                open my $file,"<","$_" or die "Fail to open $_ $!";
                  do your stuff
                close $file;
}

我的方法看起来比较笨,呵呵
#! /usr/bin/perl -w


$num = "01";
$txt = ".txt";
for($i = 1; $i < 11; $i+=1){
open CP, $num.$txt;
print $num.$txt."\n";
$num++;
}

[[i] 本帖最后由 rt77789 于 2008-4-19 17:19 编辑 [/i]]
非常感谢两位! 呵呵 
我先去试试!
churchmice 的方法总是很不错!
churchmice 写的东西是有Perl风格的Perl。

从写C或者C++程序过来的好多都没有这种风格。

if you can keep all the .txt files in one directory, you can try this, so your script can work on the fly.


#!/usr/bin/perl -w
use strict;

foreach (glob"*.txt") {
   open IN, "< $_" or die "Could not open file $_ for reading: $_\n";
   while (<IN>) {
# Do whatever you want;
   }
   close IN;
}

while (<>)
{
     do_your_work
}

----

> perl your_prog.pl 01.txt 02.txt 03.txt 08.txt 15.txt
我是从c过来的。。。


QUOTE:
原帖由 cobrawgl 于 2008-4-20 12:35 发表
while ()
{
     do_your_work
}

----

> perl your_prog.pl 01.txt 02.txt 03.txt 08.txt 15.txt

感觉这种方式局限性比较大!
如果文件很多呢?


QUOTE:
原帖由 cobrawgl 于 2008-4-20 12:35 发表
while ()
{
     do_your_work
}

----

> perl your_prog.pl 01.txt 02.txt 03.txt 08.txt 15.txt



QUOTE:
原帖由 andy820303 于 2008-4-20 22:36 发表



感觉这种方式局限性比较大!
如果文件很多呢?

这才是perl的风格。。。

不过也许稍微改一下可用性就更强了。。

[Copy to clipboard] [ - ]
CODE:
while(shift @ARGV){
    my $file=$_;
    do_your_work();
}