2012-06-02 48 views
3

我正在开发一个主要是Ruby on Rails的项目。但是,我需要在这个项目中生成和解析Excel文件(我知道,我知道...),所以我一直在使用Perl的Spreadsheet :: WriteExcel和Spreadsheet :: ParseExcel,它们运行良好。但是,将Perl的这种用法与更大的Ruby on Rails应用程序结合起来的最佳方式是什么?用反引用的方式调用Perl脚本的方法是什么?这对我来说感觉有点不好,但如果这是唯一的(或最好的)方式,那么我就会这么做。我想伸手去看看是否有其他人有一些建议或建议。用Perl和Ruby编写应用程序?

谢谢!

回答

5

还有speadsheet gem,虽然我从来没有用它来写作。

我认为使用反引号或%x()并不存在任何内在错误,尽管我可能会将Perl作为服务公开,以使其更具通用性。虽然可能过度杀伤。

+0

感谢您指出宝石!我会看一看。我认为服务路线可能是这个特定项目的最佳途径,尽管这可能是过度的。谢谢! –

3

您可能会考虑使用Perl webapp框架(如Mojolicious)制作简单的RESTful应用程序。您的RoR应用程序可以简单地调用Perl应用程序并返回一些JSON。

这里是一个非常简单的应用程序,当然你的get_data会做些什么,我只是让它返回一个简单的散列。一旦你已经安装Mojolicious您可以用其内置的服务器之一运行它,例如:morbo myapp.pl

#!/usr/bin/env perl 
use Mojolicious::Lite; 

get '/:query' => sub { 
    my $self = shift; 
    my $query = $self->param('query'); 
    my $data = get_data($query); 
    $self->render(json => $data); 
}; 

app->start; 

sub get_data { 
    my $query = shift; 
    # do something here, like parse some excel file 
    # I will just make some silly data 
    my $data = { $query => $query }; 
    return $data; 
} 
1

我不知道有多少第三方(假设保存为当然myapp.pl以下)它支持的东西,但有ruby-perl项目:在Ruby内嵌入Perl。