在perl中以__DATA__格式读取输入文件

时间:2014-07-23 11:00:10

标签: perl

我有这个Perl代码,它在DATA部分有硬编码的输入数据:

 __DATA__
 M19,    Q,    P,
 M31,    M19,    Pl,
 M420,    M31,    E,
 M421,    M31,    E,
 M33,    M31,    E,
 M438,    M33,    Pl,
 M445,    M33,    E,
 M437,    M33,    E,

此硬编码数据正在由以下代码处理:

 split /,\s*/ for <DATA>;

我已将数据复制到与代码相同的目录中的单独input.txt文件中。但我希望将文件作为用户输入读取。但我不知道如何以与__DATA__相同的方式读取输入文件。这是我正在使用的,不起作用:

print  ("Enter the file")

用户输入input.txt

chomp(my $file=<STDIN>); 

2 个答案:

答案 0 :(得分:1)

尝试此操作以获取用户输入的文件名:

    print "enter the file name\n";
    chomp(my $file=<STDIN>);
    open(DATA,$file) or die "failed to open this file!!"; #this will open the file in the file-handle DATA if the file exists in the same directory else it will die

现在您可以按照以下方式通过拆分功能拆分内容:

split /,\s*/ for <DATA>;

答案 1 :(得分:0)

您可以使用perl函数open

您可以使用

open(FH, $file);

打开文件,然后用

处理它
<FH>

就像你在分裂

中所做的那样