为什么Perl会在我的Win32 :: OLE脚本中抱怨裸词?

时间:2009-03-04 13:41:00

标签: perl warnings bareword

#___ FIND LAST ROW/COLUMN WITH DATA
my $row = $Sheet1 -> UsedRange -> Find(
     {      What => "*", 
            SearchDirection => xlPrevious,  
            SearchOrder => xlByRows
      })-> {Row};

错误:

Bareword "xlByRows" not allowed while "strict subs" in use. 

3 个答案:

答案 0 :(得分:4)

您必须将use Win32::OLE::Const 'Microsoft Excel';放在程序的顶部才能正确导入常量。

看看这个Perl Monks page。它似乎涵盖了你所遇到的问题。

答案 1 :(得分:4)

请参阅CPAN docs for Win32::OLE::Const

你需要:

use Win32::OLE::Const 'Microsoft Excel';

答案 2 :(得分:1)

xlByRows不是常数,你应该把它放在引号中。除非它是OLE对象导出的常量,在这种情况下,您需要使用Win32 :: OLE :: Const或类似的方法将其导入您的命名空间。