Perl值不坚持

时间:2013-03-12 20:04:54

标签: perl

我知道我在这里遗漏了一些简单的东西,但我无法弄明白并且谷歌无法正常工作

我正在尝试使用$F的值,但它无效。我将省略一些代码。我得到一个错误,基本上说$f需要一个特定的包名

sub captureFile()
{
    my $F = $File::Find::name;
    if ($F = ~/txt$/)
    {
      $F=~ s:(.*)(\/reports\/.*):$2:;
      loadEnvironmentProperties($F);
    }
 }


 sub loadEnvironmentProperties()
 {
    print $F;
 }

2 个答案:

答案 0 :(得分:8)

始终use strict; use warnings;

您尝试将$ F指定为参数

loadEnvironmentProperties($F);
                          ^^

到你声明的函数没有参数

sub loadEnvironmentProperties()
                             ^^

你从未真正阅读过loadEnvironmentProperties中的论据。你想要:

sub loadEnvironmentProperties {
   my ($F) = @_;
   print $F;
}

答案 1 :(得分:2)

$ F不存在第二个子程序,因为你没有把它从参数数组中取出来

sub loadEnvironmentProperties()
 {
    my $F = shift;
    print $F;
 }