相关疑难解决方法(0)

使用Perl查找文件

File::Find wanted 子程序

这个问题比原始标题("原型和子程序的前向声明"!)简单得多.我希望答案,无论多么简单,都能帮助我理解子程序/函数,原型和范围以及File::Find模块.

使用Perl,子程序几乎可以出现在任何地方,你通常不需要进行前向声明(除非sub声明了一个原型,我不知道如何在Perl中采用"标准"方式).对于我通常用Perl做的事情,这些不同的运行方式之间没有什么区别somefunction:

sub somefunction;  # Forward declares the function
&somefunction; 
somefunction();
somefunction;   # Bare word warning under `strict subs`
Run Code Online (Sandbox Code Playgroud)

我经常find2perl用来生成代码,我将这些代码整合到脚本的一部分中.这可能是糟糕的风格,现在我的脏衣服是公开的,但所以它是:-)因为File::Findwanted功能是一个必需的子程序 - find2perl创建它并添加sub wanted;到它创建的结果脚本.有时候,当我编辑脚本时,我会从中移除" sub" sub wanted并最终为&wanted;wanted();.但如果没有sub wanted;前瞻声明表格,我会收到此警告:

Use of uninitialized value $_ in lstat at findscript.pl line 29
Run Code Online (Sandbox Code Playgroud)

我的问题是:为什么会发生这种情况,这是一个真正的问题吗?这只是"警告",但我想更好地理解它.

  • 文档和代码说明$_是本地化的sub wanted {}.如果我使用wanted();而不是sub wanted;?为什么它会被定义?
  • wanted某处使用原型?我错过了一些明显的东西Find/File.pm …

perl find

8
推荐指数
2
解决办法
2万
查看次数

标签 统计

find ×1

perl ×1