печать данных в CSV-файл в виде массива - PullRequest
0 голосов
/ 21 декабря 2018

Я попытался напечатать массив в CSV-файл, и для этого напишите этот код:

use strict;
use warnings;

use Text::CSV;

use Text::CSV_XS;

my $csv = Text::CSV_XS->new();

my $file = "data.csv";

open(OUT, '<', $file) or die "Could not open '$file' $!\n";

my @columns = (qw/what ever the items are for each columns/);

my $status = $csv->print(OUT, \@columns);

И этот скрипт вернет мне это: Bareword "OUT" не разрешен, в то время как "strict subs" виспользуйте в строке test.pl 37. Выполнение test.pl прервано из-за ошибок компиляции.

Я пытаюсь использовать Text :: CSV или Text :: CSV_XS для печати данных в CSV, и мне нужно больше информации о синтаксисе.

1 Ответ

0 голосов
/ 21 декабря 2018

Вы не можете использовать дескрипторы файлов без слов в качестве параметров подпрограммы.Вместо этого используйте лексические дескрипторы файлов:

open my $out, '<', $file or die ...;
$csv->print($out, \@columns);

Или используйте сигил typeglob (менее предпочтительно):

$csv->print(*OUT, \@columns);

Более того, вы открыли файл для чтения (<).Вы не можете печатать на дескриптор файла ввода.Вы имели в виду >?

...