读书人

关于正则表达式解决方法

发布时间: 2012-03-19 22:03:05 作者: rapoo

关于正则表达式
大家好,我写了一段读取相应目录下文件的程序,当读取到空行时,切换到工作目录,读取它的文件。但是执行到第12行出现了问题:
首先系统输出:Please enter the directory:
之后输入空格然后回车。
系统提示:
Argument "\n" isn't numeric in multiplication (*) at ./Ex13_3 line 12, <STDIN>
line 3 (#1)
Use of chdir('') or chdir(undef) as chdir() is deprecated at ./Ex13_3 line 18,
<STDIN> line 3 (#2)
readdir() attempted on invalid dirhandle DH at ./Ex13_3 line 21, <STDIN> line 3 (#3)

closedir() attempted on invalid dirhandle DH at ./Ex13_3 line 26, <STDIN> line
3 (#4

具体源码如下:

Perl code
      1 #!/usr/bin/perl -w      2 use strict;      3 use diagnostics;      4       5 my $dir;      6 my $file;      7 print "Please enter the directory: \n";      8 while(defined($dir=<STDIN>))      9 {     10   chomp($dir);     11      12   if($dir =~ /^/s*$/)     13   {     14     chdir or die "can not chdir to your home: $! \n";     15   }     16   else     17   {     18     if(chdir $dir)     19     {     20       opendir DH, $dir;     21       foreach $file (readdir DH)     22       {     23         print "one file in $dir is $file \n";     24       }     25       print "\n";     26       closedir DH;     27     }     28     else     29     {     30       print "can not chdir to $dir: $! \n";     31     }     32   }     33      34      35   print "Please enter the directory: \n";     36 }


请问这个问题是什么原因引起的呢?
谢谢!

[解决办法]
/s改成\s

读书人网 >perl python

热点推荐