作者kornelius (c9s)
看板Perl
标题Re: [问题] 利用while回圈跑阵列变无穷回圈?
时间Sun Mar 14 12:31:18 2010
因为 while 是提供 boolean context 关系。
通常会这样写
while( $f = shift @files ) {
unlink $f;
}
其实通常会只写一行:
unlink $f for @files;
或是
map { unlink $_ } @files;
※ 引述《adbro (广告王道)》之铭言:
: 各位大大好
: 小弟之前在实做一个删除档案的程式
: 我已经将要删除的档案名称列表都存到阵列@files中,
: 但利用回圈跑unlink时,却变成无穷回圈?
: 如下:
: while(@files){
: unlink($_);
: }
: 但执行下去变成无穷回圈档案也未删除?
: 用for却可以正常执行!
: 百思不得其解
: 想请教板上的大大们,是否小弟做法有误?
: while与for不是一样功能?
: 用while无法执行吗?
--
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.229.24.37
1F:推 LyinZ:或是 unlink @files; (逃) 03/14 13:25
2F:推 zard1989:unlink也太妙了,推楼上! 03/15 00:27
3F:→ kornelius:差点忘了 unlink 也可以吃 List :p 03/16 18:44
4F:推 adbro:感谢各位大大的解说,小弟受教了 03/23 22:11