1

でのファイルの読み取りに問題がありますperl

以下のソースがあります。

use strict;
use warnings;

sub main()
{
    my @lines = file_read("test.c") or die;
    file_print(@lines);
}

sub file_read
{
    my $filename = shift;
    my @lines;

    open(FILE, "<", $filename) or die $!;
    @lines = <FILE>;
    return @lines;
}

sub file_print
{
    my @lines = shift();

    print("Total lines " . scalar(@lines) . "\n");

    foreach my $line (@lines)
    {
            print($line);
    }
}

そして、次のファイル:

/******************************************************************************

*                                                                             *

*                                                                             *

出力は次のとおりです。

Total lines 1
/******************************************************************************

ここで何が問題なのですか?

0x0A 0x0A ASCIIシンボルの組み合わせまでファイルを読み取ると私が推測できる唯一のこと。

4

2 に答える 2

0

おそらく、サブルーチンの配列参照を渡す必要がありますfile_print

file_print(\@lines);

次に、サブルーチンで:

$lines = shift;
@lines = @$lines;

これは仕事をします。

于 2013-05-08T11:24:10.757 に答える