+ -
当前位置:首页 → 问答吧 → 求助;foreach循环只循环一次

求助;foreach循环只循环一次

时间:2011-07-11

来源:互联网

  1. #!/usr/bin/perl -w
  2. use warnings;
  3. use strict;
  4. sub GetDisk{
  5. my $cmd = "(fdisk -l) 2>&1";
  6. my @list = `$cmd`;
  7. foreach (@list){
  8.         chomp;
  9.         s/^\s+//g;
  10.         s/\s+$//g;
  11.         next unless $_ =~ m/^\//;
  12.         next if $_ =~ m#\/\w{3}\/\w{2}a\d#g;
  13.         next if $_ =~ m/d$/g;
  14.         push(my @disk,(split /\s+/,$_)[0]);
  15. #       print "@disk\n";
  16.         return @disk;
  17. }
  18. }
  19. sub MkfsDisk {
  20.         foreach (GetDisk()){
  21.               my $cmd = "mkfs -t ext3 $_ 2>&1 >/dev/null";
  22.                 `$cmd`;
  23.                 print "$_  Format Success!\n";
  24. }
  25. }
  26. MkfsDisk();
复制代码
问题 如标题. 在MkfsDisk子程序中.foreach循环GetDisk返回的@disk数组.只循环了一次.就跳出..请问这是什么原因..  求解答..另请问perl中有没有帮助创建分区的模块.. 类似于 fdisk /dev/sdb 这种...

作者: klathleen   发布时间: 2011-07-11

回复 klathleen


    return @disk;是不是应该放在foreach循环外面啊

作者: yinyuemi   发布时间: 2011-07-11

热门下载

更多