English 中文(简体)
我怎么能够把特性传给档案中的一条线?
原标题:
  • 时间:2009-06-03 13:49:51
  •  标签:

我有一份CSV文件,摘自票系统(我没有直接的银行进入),需要从另一个数据库中翻一番,然后在Excel上报。

使用Perl将数据从其他数据库中删除的Im,在我处理档案时,仅将额外栏目加起来。

如果没有基本建立新档案,是否有办法这样做? 基本结构是:

foreach $line (@lines) {
    my ($vars here....) = split ( , ,$line);
    ## get additional fields
    ## append new column data to line
}
最佳回答

您可使用Tie: 更改档案(从Perl 5.8)(从Perl 开始)的文件:

#!/usr/bin/perl

use strict;
use warnings;

use Tie::File;


my $file = shift;

tie my @lines, "Tie::File", $file
    or die "could not open $file: $!
";

for my $line (@lines) {
    $line .= join ",",   , get_data();
}

sub get_data {
    my $data = <DATA>;
    chomp $data;
    return split /-/, $data
}

__DATA__
1-2-3-4
5-6-7-8

您也可以使用“ARGV/<”的电子配对;和 trick,设定“^一”美元:

#!/usr/bin/perl

use strict;
use warnings;

$^I = ".bak";

while (my $line = <>) {
    chomp $line;
    $line .= join ",",   , get_data();
    print "$line
";
}

sub get_data {
    my $data = <DATA>;
    chomp $data;
    return split /-/, $data
}

__DATA__
1-2-3-4
5-6-7-8
问题回答

查阅DBD:CSV,将档案视作数据库(该数据库还将处理你的特殊性质)。

尽管存在任何冰箱,但您最终必须逐条阅读文档。 甚至可能需要做更多的工作,这样,如果某些被引述的领域能够融入新的路线。 利用了解CSV的内容避免其中一些问题。 文本:CSV_XS应拯救大多数单壳体。

考虑使用<代码>-i 备选办法至edit <>文档。





相关问题
热门标签