perl中的foreach x(cat文件)?

时间:2016-09-07 06:53:44

标签: perl unix cat

尝试运行代码:

foreach x ( `cat file`)
echo $x
end

在unix上运行时的预期输出:

1
2
3
4
5

在perl脚本上运行时:

1 2 3 4 5 

请告知如何在perl的unix中实现输出?

2 个答案:

答案 0 :(得分:0)

请检查以下代码:

  • 我想你想要在新行上打印元素。您只需要在元素中添加换行符。

@array = (1..10);
foreach my $x (@array)
{
    print "$x\n";
}

输出:

C:\Users\dinesh_pundkar\Desktop>perl a.pl
1
2
3
4
5
6
7
8
9
10

答案 1 :(得分:0)

您的代码甚至不在Perl中

foreach x ( `cat file`)
echo $x
end
  1. Perl中没有echo或end命令。
  2. 为什么使用system的cat命令?你应该使用纯Perl来完成这些微不足道的任务。
  3. 我假设您正在尝试循环文件内容,然后打印每一行。

    在Perl中,您可以使用以下方式执行此操作:

    #!/usr/bin/perl
    #always use the below 2 lines in your Perl program
    use strict;
    use warnings;
    
    my $filename = '/path/to/file';
    #open file in read mode
    open (my $fh, "<", $filename) or die "Could not open file $!";
    #use while to iterate over each line
    while my $line (<$fh>){
        print $line;
    }
    

    或者您可以将文件的内容放在数组中然后循环遍历

    my @lines = <$fh>;
    foreach my $line (@lines){
        print $line;
    }