perl 中的 foreach x(cat 文件)?
foreach x ( cat file ) in perl?
尝试运行代码:
foreach x ( `cat file`)
echo $x
end
Unix 上 运行 时的预期输出:
1
2
3
4
5
当 运行 在 perl 脚本上:
1 2 3 4 5
请指教如何在 perl 中实现类似 unix 的输出?
请检查以下代码:
- 我想你想在新行上打印元素。您只需要在元素上附加换行符即可。
@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
您的代码甚至不是 Perl 语言
foreach x ( `cat file`)
echo $x
end
- Perl 中没有 echo 或 end 命令。
- 为什么要使用系统的cat 命令?您应该使用纯 Perl 来完成这些琐碎的任务。
我假设您正在尝试遍历文件的内容,然后打印每一行。
在 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;
}
尝试运行代码:
foreach x ( `cat file`)
echo $x
end
Unix 上 运行 时的预期输出:
1
2
3
4
5
当 运行 在 perl 脚本上:
1 2 3 4 5
请指教如何在 perl 中实现类似 unix 的输出?
请检查以下代码:
- 我想你想在新行上打印元素。您只需要在元素上附加换行符即可。
@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
您的代码甚至不是 Perl 语言
foreach x ( `cat file`)
echo $x
end
- Perl 中没有 echo 或 end 命令。
- 为什么要使用系统的cat 命令?您应该使用纯 Perl 来完成这些琐碎的任务。
我假设您正在尝试遍历文件的内容,然后打印每一行。
在 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;
}