如何读取文件的指定行



QUOTE:
原帖由 MMMIX 于 2008-11-26 14:11 发表

又是一个。。。

我还想再问一个问题

一个文件,每行都是以空格,或“|”,“#”分割,每行的字段数不一定相同。输出要求:
第一行输出最后一个字段,第二行输出倒数第二个字段,第三行输出倒数第三个字段,.....,输出第一个字段以后接下来再输出最后一个字段,以此循环。
如何做?
其实这也是工作所迫啊,上头给你个任务,你难道还去把相关知识全看一遍吗?
不现实啊,关键是学以致用,慢慢知识就补齐了,
坚持学习perl中...


QUOTE:
原帖由 nelfking 于 2008-11-26 18:01 发表
其实这也是工作所迫啊,上头给你个任务,你难道还去把相关知识全看一遍吗?

接任务之前必要的基础得有吧?
我大学刚毕业,上头说要做个东西,用perl,给本书
就这样...
象这样的一系列简单问题, 最多个把星期看完小骆驼后都可以搞定了.

正在努力
大家不要吵,先帮我解决一下问题。


QUOTE:
原帖由 baoyu05 于 2008-11-26 18:36 发表
大家不要吵,先帮我解决一下问题。

这里又不是自动问答机,大家来这也不是为了帮你解决问题。


[Copy to clipboard] [ - ]
CODE:
#!/usr/bin/perl

$s = 1;
$n = 0;
while (<DATA>) {
    chomp;
    @fields = split /[ #|]+/;

    print " " x $n, $fields[$n], "\n";

    if ($n >= @fields-1 || ($. > 1 && $n < 1)) {
        $s = -$s;
    };
    $n+=$s;
}

__DATA__
1|2|3|4|5|6|7|8|9
1|2|3|4|5|6|7|8|9
1|2|3|4|5|6|7|8|9
1|2|3|4|5|6|7|8|9
1|2|3|4|5|6|7|8|9
1|2|3|4|5|6|7|8|9
1|2|3|4|5|6|7|8|9
1|2|3|4|5|6|7|8|9
1|2|3|4|5|6|7|8|9
1|2|3|4|5|6|7|8|9
1|2|3|4|5|6|7|8|9
1|2|3|4|5|6|7|8|9
1|2|3|4|5|6|7|8|9
1|2|3|4|5|6|7|8|9
1|2|3|4|5|6|7|8|9
1|2|3|4|5|6|7|8|9
1|2|3|4|5|6|7|8|9
1|2|3|4|5|6|7|8|9
1|2|3|4|5|6|7|8|9
1|2|3|4|5|6|7|8|9
1|2|3|4|5|6|7|8|9
1|2|3|4|5|6|7|8|9
1|2|3|4|5|6|7|8|9
1|2|3|4|5|6|7|8|9
1|2|3|4|5|6|7|8|9



QUOTE:
原帖由 ynchnluiti 于 2008-11-26 19:57 发表
#!/usr/bin/perl

$s = 1;
$n = 0;
while () {
    chomp;
    @fields = split /[ #|]+/;

    print " " x $n, $fields[$n], "\n";

    if ($n >= @fields-1 || ($. > 1 && $n < 1)) {
        $ ...

多谢。“$.”是什么意思,是不是行号?,我查了,查不到。