- 论坛徽章:
- 0
|
本帖最后由 shaunsyb 于 2016-04-22 10:09 编辑
- #!/usr/bin/perl
- use warnings;
- use strict;
- use File::Find;
- my $profile="~/.bash_profile";
- open(NEWENV, ". $profile && env|") or die "$!";
- while (<NEWENV>){
- if (/(\w+)=(.*)/){
- $ENV{$1}="$2";
- }
- }
- close NEWENV;
- for my $count (0..1) {
- my @all_dir;
- sub wanted {
- push @all_dir,$File::Find::name if ( $_ =~ /^radius\.log$/ );
- }
- find(\&wanted,"$ENV{radius_home}/radius_log");
- print "@all_dir"."\n";
- }
复制代码 使用以上 脚本进行 循环查询的时候,只能打印出第一次 的结果,第二次为空,以下为打印结果:
/radius_log/radius_log/log/radius.log
而使用如下脚本执行时,则可以打印出2次的结果..- #!/usr/bin/perl
- use warnings;
- use strict;
- use File::Find;
- my $profile="~/.bash_profile";
- open(NEWENV, ". $profile && env|") or die "$!";
- while (<NEWENV>){
- if (/(\w+)=(.*)/){
- $ENV{$1}="$2";
- }
- }
- close NEWENV;
- my @all_dir;
- for my $count (0..1) {
- splice @all_dir;
- sub wanted {
- push @all_dir,$File::Find::name if ( $_ =~ /^radius\.log$/ );
- }
- find(\&wanted,"$ENV{radius_home}/radius_log");
- print "@all_dir"."\n";
- }
复制代码 修改后的脚本就是 将 @all_dir 变量放到了循环之外,实在搞不明白 第一个脚本的问题出在哪里。。。求大神解惑!! |
|