批处理之家's Archiver

Mekel 发表于 2018-11-15 09:13

perl模块问题

我在自己的模块aa.pm中引用了getopt:long,在别的脚本调用这个perl模块时该如何把所有参数传递过去?

523066680 发表于 2018-11-15 10:04

[i=s] 本帖最后由 523066680 于 2018-11-15 10:19 编辑 [/i]

[b]回复 [url=http://bbs.bathome.net/redirect.php?goto=findpost&pid=214906&ptid=51310]1#[/url] [i]Mekel[/i] [/b]


    在 模块中要共享的变量使用 our 声明,例如官方Getopt::Long示例的三个变量[code]our $data   = "file.dat";
our $length = 24;
our $verbose;[/code]在脚本中使用 $模块名::变量名 访问
$aa::data
$aa::length

或者在 aa.pm 中建立一个函数,通过这个函数返回所有相关参数的{哈希表}。

Mekel 发表于 2018-11-16 13:26

[b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=214907&ptid=51310]2#[/url] [i]523066680[/i] [/b]


  多谢, 参数是能够完美传递的,即使不加our,因为我原函数里有$a=shift这样的语句,写pm里就要写成$a=shift @ARGV才行

523066680 发表于 2018-11-16 14:26

[i=s] 本帖最后由 523066680 于 2018-11-16 14:29 编辑 [/i]

[b]回复 [url=http://bbs.bathome.net/redirect.php?goto=findpost&pid=214954&ptid=51310]3#[/url] [i]Mekel[/i] [/b]

初看描述以为是想要把自建模块里的变量往外传。

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.