1746_Perl中面向对象的目录处理模块

全部学习汇总: GreyZhang/perl_basic: some perl basic learning notes. (github.com)

         说起来我还不懂Perl的面向对象编程技术,只是在前阵子看到了书中提到了一句,用到了一个例子。今天看书的时候又看到了类型形势的代码(代码中很多瘦箭头),我觉得大概是面向对象的编程吧!

         工作之后从事了几年汽车电子ECU软件集成的工作,工作期间大量的自动化处理、批量化操作,很多时候都是跟目录和文件打交道。直到现在,我依然不是很懂Perl、Python或者MATLAB等各种脚本技术,已经了解掌握的就那么一点点东西,不过被我在工作中翻来覆去地用烂了。虽说写出来的代码又丑又笨,好歹还是发挥作用了。

         最近重新开始看Perl的教程,很多东西都让我感觉到欣喜。比如说刚刚遇到的这个功能:一个Perl内置的面向对象的目录处理模块Path::Class。

         简单抄了几段代码试用后,欣喜万分。如果我早就知道了有这么方便的模块,之前的工作中该会多么愉快。

#!/usr/bin/perl -w

use Path::Class;

use 5.010;

my $dir    = dir(qw(Users fred lib));

my $subdir = $dir -> subdir('perl5');

my $parent = $dir -> parent -> parent;

my $windir = $dir -> as_foreign('Win32');

say $dir;

say $subdir;

say $parent;

say $windir;

         上面的功能中用到了文件的拼接函数dir,增加子目录的方法subdir,获取父目录的方法以及适用于不同的操作系统平台的目录格式接口。

         以上方法、接口等字眼都是我根据我的感觉推测描述的,毕竟文档还没有阅读,面向对象我也不会。至于测试代码中用了两个父目录的方法纯粹是为了验证一下我对这个功能的猜测。

         那么,我为什么欣喜呢?因为我觉得如果现在再让我做一个文件备份工具或者是从版本管理服务器更新什么代码或者文件的时候,我写个简单的脚本会轻松很多。对原目录的分析以及对拷贝目标的构建都会显得比较轻松。更为重要的是,这个瘦箭头看上去比较顺眼,这种描述的方式可以让我更多地去考虑做什么而不用再费脑子不断地去构造拼接算法或者在脚本的编写过程中不断输出屏显观察结果,一切会水到渠成、自然而然。

         以下是脚本运行的结果,运行的平台为Windows7(我更新欢Linux,但是现在的工作性质决定了我还是得花点大洋买Windows在Windows上折腾,何况,如今我对Windows系统并不讨厌^_^):

你可能感兴趣的:(perl,perl,开发语言)