perl的一点问题
2017-08-06 10:30
274 查看
perl版本是5.16(centos7上自带)
perl模块化写程序有一些小问题,我遇到的情况类似如下,
正确能工作的代码如下,
my @ifIndex;
这是改写后的代码,原始代码类似如下
sub interface_fromobj {
my @ifIndex = @_[0];
my $policy_index = @_[1];
foreach (@ifIndex) {
s/"//g ;
my @littlearray = split / /;
my @oid = split /\./, $littlearray[0];
chomp $littlearray[3];
if ($oid[-1] eq $policy_index) {
my $ifDescr = `$snmpget -v $version $node -c $comm $ifDescr_oid.$littlearray[3]`;
my @ifDescrarray = split (/ /,$ifDescr);
chomp $ifDescrarray[3];
return $ifDescrarray[3];
}
}
}
在原始代码中,出现的情况是@ifIndex经常获取失败。
也就是说,模块化的perl程序子函数,对于输入参数是数组(例如这里@ifIndex)的类型,经常性会出现问题。原因可能是数组比较大?未明FIXME
建议修改的方法,是将这种数组作为全局变量,像开头我使用的情况一样。
perl模块化写程序有一些小问题,我遇到的情况类似如下,
正确能工作的代码如下,
my @ifIndex;
sub interface_fromobj { my $policy_index = @_[0]; foreach (@ifIndex) { s/"//g ; my @littlearray = split / /; my @oid = split /\./, $littlearray[0]; chomp $littlearray[3]; if ($oid[-1] eq $policy_index) { my $ifDescr = `$snmpget -v $version $node -c $comm $ifDescr_oid.$littlearray[3]`; my @ifDescrarray = split (/ /,$ifDescr); chomp $ifDescrarray[3]; return $ifDescrarray[3]; } } }
这是改写后的代码,原始代码类似如下
sub interface_fromobj {
my @ifIndex = @_[0];
my $policy_index = @_[1];
foreach (@ifIndex) {
s/"//g ;
my @littlearray = split / /;
my @oid = split /\./, $littlearray[0];
chomp $littlearray[3];
if ($oid[-1] eq $policy_index) {
my $ifDescr = `$snmpget -v $version $node -c $comm $ifDescr_oid.$littlearray[3]`;
my @ifDescrarray = split (/ /,$ifDescr);
chomp $ifDescrarray[3];
return $ifDescrarray[3];
}
}
}
在原始代码中,出现的情况是@ifIndex经常获取失败。
也就是说,模块化的perl程序子函数,对于输入参数是数组(例如这里@ifIndex)的类型,经常性会出现问题。原因可能是数组比较大?未明FIXME
建议修改的方法,是将这种数组作为全局变量,像开头我使用的情况一样。
相关文章推荐
- perl写的cgi一点小的问题
- 关于USB-AUDIO使用ALSA编程的一点问题
- centos系统中perl进程病毒占用大量网络流量导致网络瘫痪的问题分析及解决方案
- 自定义ActionBar、Toolbar布局(解决自定义ActionBar布局左边始终有一点边距的问题)
- 关于数字运算符值得注意的一点小问题
- 使用perl发送TLS加密邮件(更新发送乱码问题解决办法)
- 关于Access数据库的一点小问题
- 对于Unity中旋转问题的一点总结
- WebView的一点问题
- System.Data.SQLite使用中遇到的一点问题解决
- 关于使用“远程桌面连接”中碰到的一点问题!
- Emgu中遇到的一点问题,无法加载DLL
- 一点小问题
- perl: warning: Setting locale failed.引发的问题
- css/JS一点兼容性问题(源自网络)
- perl 解析 android 字符串资源的 %1$s 匹配问题
- [Perl] 关于 Bugzilla 的一些问题与研究
- [C#]关于DLL使用.exe.config 的问题,也许以下描述有一点帮助
- 一点小问题!