我写了一个模块,只是为了将文件分成训练和测试集。输出很好,但如果两个引用变量@$test
和@$training
的输出被重定向到两个不同的文件,那么学生将非常容易。这是代码:
use Cut;
my($training,$test)=Cut::cut_80_20('data.csv') ;
print"======TRAINING======\n"."@$training\n";
print"======TEST==========\n"." @$test\n";
答案 0 :(得分:3)
print在输出数据之前采用可选的文件句柄。打开文件并打印出来:
open( my $training_fh, '>', 'training.csv' ) or die "Couldn't open training.csv: $!";
print $training_fh "======TRAINING======\n"."@$training\n";
open( my $test_fh, '>', 'test.csv' ) or die "Couldn't open test.csv: $!";
print $test_fh "======TEST==========\n"." @$test\n";
答案 1 :(得分:2)
这很容易:
open my $fh1, '>', "training.out" or die "failed to open training.out ($!)";
print $fh1 "======TRAINING======\n";
print $fh1 "@$training\n";
close $fh1;
open my $fh2, '>', "test.out" or die "failed to open test.out ($!)";
print $fh2 "======TEST==========\n";
print $fh2 "@$test\n";
close $fh2;
请注意print语句中的文件句柄后没有逗号。您可以根据需要添加换行符等。