大家好,我写了一段读取相应目录下文件的程序,当读取到空行时,切换到工作目录,读取它的文件。但是执行到第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