导入.pl文件

时间:2012-04-17 18:10:23

标签: perl import

我想知道如何将Perl文件导入脚本。我尝试使用,需要和做,但似乎没有什么对我有用。这就是我用require做的方式:

#!/usr/bin/perl

require {
 (equations)
}

print "$x1\n";

是否可以编写代码将值(我在我的脚本中)替换为equations.pl,然后让我的脚本使用equations.pl中定义的等式来计算另一个值?我该怎么做?

4 个答案:

答案 0 :(得分:5)

您可以要求.pl文件,然后执行其中的代码,但是为了访问变量,您需要一个包,并且“使用”而不是require(简单方法)或通过Exporter。

http://perldoc.perl.org/perlmod.html

简单示例:这是您要导入的内容,将其命名为Example.pm:

package Example;

our $X = 666;

1;  # packages need to return true.

以下是如何使用它:

#!/usr/bin/perl -w
use strict;

use Example;

print $Example::X;

这假设Example.pm位于同一目录或@INC目录的顶层。

答案 1 :(得分:3)

您无法导入文件。您可以执行文件并从中导入符号(变量和子)。请参阅perlmod中的Perl Modules

答案 2 :(得分:2)

equations.pm file:

package equations;

sub add_numbers {
  my @num = @_;
  my $total = 0;
  $total += $_ for @num;
  $total;
}

1;

test.pl 档案:

#!/usr/bin/perl -w

use strict;
use equations;

print equations::add_numbers(1, 2), "\n";

<强> 输出:

3

答案 3 :(得分:0)

您提供的关于equations.pl的详细信息很少,但如果输入可以通过命令行参数给出,那么您可以open管道:

use strict;
use warnings;

my $variable; #the variable that you will get from equations.pl
my $input=5; #the input into equations.pl

open (my $fh,"-|","perl equations.pl $input") or die $!;

while(my $output=<$fh>)
{
  chomp($output); #remove trailing newline
  $variable=$output;
}

if(defined($variable))
{
  print "It worked! \$variable=$variable\n";
}
else
{
  print "Nope, \$variable is still undefined...\n";
}

如果这是equations.pl的主体:

use strict;
use warnings;

my $foo=$ARGV[0];
$foo++;
print "$foo\n";

然后上面的代码输出:

It worked! $variable=6