【问题标题】:Convert Arrays to Strings Perl [duplicate]将数组转换为字符串 Perl [重复]
【发布时间】:2014-07-07 15:04:16
【问题描述】:

我有一个包含以下内容的 movies.txt 文件

    the blind side
    iron man
    star trek
    gi joe

我试图用这个在 perl 中打开这个文本文件

    open(FILEHANDLE,'movies.txt');
    @array2 =<FILEHANDLE>;

我应该运行什么命令才能获得以下输出?

   the blind side    iron man    star trey    gi joe

【问题讨论】:

  • join 不会去掉换行符,对吗?
  • the answer I gave you here 有什么问题?您似乎想要相同的输出但没有逗号

标签: arrays string perl


【解决方案1】:

从每一行中删除换行符,用制表符连接它们,然后打印结果。所以下面的代码

chomp(@array2);
print (join "\t", @array2);

应该够了。

【讨论】:

  • 不,chomp(@array2) 导致 sgi joe 消失,钢铁侠和开始跋涉被粘在一起
  • 如果chomp(@array) 不起作用,则说明您的数据或代码中存在一些您没有告诉我们的内容。
  • @user3448790:我们已经讨论过 Windows 行尾。你怎么好像完全忘记了?
【解决方案2】:

Lee DuhemDave Cross 都针对删除换行符。但是,请考虑以下事项:

use strict;
use warnings;

open my $fh, '<', 'movies.txt' or die "Can't open the movies file: $!";
chomp( my @movies = <$fh> );
print join ' ' x 4, @movies;

数据集上的输出:

the blind side    iron man    star trek    gi joe

始终使用严格;使用警告; 在脚本的顶部。使用three-argument form of open。请注意,电影标题是joined,使用四个空格而不是制表符。

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 2021-05-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-20
    相关资源
    最近更新 更多