Введение
В настоящее время я работаю с существующим проектом Perl / R. Мне нужно передать несколько переменных со страницы Perl в R-скрипт. Этот проект в настоящее время использует пример, как показано ниже.
var.pl -> test.R
Вопрос 1
Мне было интересно, есть ли более достаточный способ передать несколько переменных. Может быть, через хеш или объект?
По двум причинам:
- Чтобы передать только один аргумент вместо 10
- Чтобы иметь какой-то идентификатор для каждой переменной
Вопрос 2
На самом деле есть еще один слой (index.pl веб-страница), который использует href для вызова var.pl :
index.pl -> var.pl -> test.R
Этот index.pl содержит тег, который вызывает var.pl и передает параметры. Скрипт var.pl не устанавливает переменные для строк, как показано ниже, но устанавливает свои переменные для переданных параметров. Можно ли вызвать скрипт R (включая параметры), чтобы перейти от index.pl прямо к test.R?
index.pl
my $var1 = 'testA';
my $var2 = 'testB';
my $var3 = 'testC';
print '<a href="var.pl?a='.$var1.'&b='.$var2.'&c='.$var3.'">Go</a>';
var.pl
use CGI qw/:standard :html3/;
use DBI;
use strict;
use warnings;
my $a = param('a');
my $b = param('b');
my $c = param('c');
my $cmd = "Rscript test.R $a $b $c"
open(PROG, "$cmd |");
while (<PROG>) {
chomp;
}
close(PROG);
test.r
arg <- commandArgs(trailingOnly = TRUE);
a = arg[1]
b = arg[2]
c = arg[3]
# I will do something with the variables