首页 > 其他 > 详细

perl学习笔记(3)—— 坑

时间:2014-12-24 22:46:06      阅读:389      评论:0      收藏:0      [点我收藏+]

(1)用perl来ls一个目录:

    写perl的时候,经常要调用到系统命令,perl有很多等价的函数可以用,但是,不小心任性了,就想用system来实现了,好吧,来个ls把,列出指定的一个目录,直接上代码

sub ls{
       my ($dir) = @_;
       system("ls -al $dir ");
}




不做参数校验了,直接ls一个目录,这个是试了一下,确实可以这样做,感觉是挺容易的,没压力。但是,你仔细想一想,这真的可行吗?仔细想一下使用场景,你会发现,这个是一个坑,据说,是惨痛的教训。

好了,不绕了,这是要在linux下使用的,linux下是允许文件名是有空格,要是我们输入一个带有空格的文件名,这里是会出错的,比如:你这样使用,

ls("files isnot done");

会被解释为“ls files isnot done”,这样就相当于ls了三个文件夹了,是不是很神奇。解决方法就是,把函数改为

sub ls{
       my ($dir) = @_;
       system("ls -al '$dir' ");
}
像你在linux下ls一个文件一样。


perl学习笔记(3)—— 坑

原文:http://blog.csdn.net/kamsau/article/details/42129553

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!