> foreach my $fa (@FA) {
>         if (@list > 0 ) {
>                 &mk_fa($fa);
>         } else {
>                 @list = (3 .. 9);
>                 &mk_fa($fa);
>         }

Or simply:

         @list = 3 .. 9 unless @list;
         mk_fa( $fa );

YES,thanks !


You should *never* modify an array that you are iterating over in a 
foreach loop.  What exactly are you attempting to do here?

for example as follows, 

in /data3 mkdir FA00000001
in /data4 mkdir FA00000002
........
in /data8 mkdir FA00000010

in /data3 mkdir FA00000011
in /data4 mkdir FA00000012
........
in /data8 mkdir FA00000016

Do you have better idea ? thank you !


[r...@nru-yz NRU]# df -h
文件系统              容量  已用 可用 已用% 挂载点
/dev/sda2              19G  5.3G   13G  30% /
/dev/sda5             120G  2.0G  112G   2% /data
/dev/sda6             120G   11G  103G  10% /data2
tmpfs                1014M     0 1014M   0% /dev/shm
/dev/sdb1             908G  476G  386G  56% /data3
/dev/sdc1             2.0T  1.2T  713G  63% /data4
/dev/sdh1             1.8T  1.3T  438G  75% /data5
/dev/sdg1             1.7T  1.2T  444G  73% /data9
/dev/sde1             1.7T  468G  1.2T  29% /data7
/dev/sdd1             1.7T  639G 1004G  39% /data6
/dev/sdf1             1.7T  1.1T  578G  65% /data8

-----邮件原件-----
发件人: John W. Krahn [mailto:jwkr...@shaw.ca] 
发送时间: 2009年11月18日 14:12
收件人: Perl Beginners
主题: Re: mkdir in the mounted partition£¬please help me£¬thanks

gaochong wrote:
> #!/usr/bin/perl -w
> 
> #Auther:gaochong
> 
> use strict;
> 
> my @list = (3 .. 9);
> my @FA=("FA00000001".."FA00002000");
> sub mk_fa {
>         my ($f) = @_;
>         foreach my $p (@list) {
>                 mkdir "/data$p/NRU/$f",0755 or warn "mkdir /data$p/NRU/$f
> err:$!";
>                 symlink "/data$p/NRU/$f","/usr/local/Titan/NRU/$f" or warn
> "symlink /data$p/NRU/$f err:$!";
>                 shift @list;

You should *never* modify an array that you are iterating over in a 
foreach loop.  What exactly are you attempting to do here?


>                 last;
>         }
> }
> 
> foreach my $fa (@FA) {
>         if (@list > 0 ) {
>                 &mk_fa($fa);
>         } else {
>                 @list = (3 .. 9);
>                 &mk_fa($fa);
>         }

Or simply:

         @list = 3 .. 9 unless @list;
         mk_fa( $fa );


> }


John
-- 
The programmer is fighting against the two most
destructive forces in the universe: entropy and
human stupidity.               -- Damian Conway

-- 
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/



--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to