码迷,mamicode.com
首页 > 其他好文 > 详细

perl学习笔记(3)—— 坑

时间:2014-12-24 22:48:59      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:perl

(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)—— 坑

标签:perl

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!