パスにある全実行可能ファイルの数(Path::Classの練習)
30分プログラム、その528。モダンなPerl入門 - モダンなPerl入門を眺めていたら、ファイル操作はPath::Classを使うのがモダンらしい。
というわけで、試しにPath::Classを使って、パスにある全実行可能ファイルの数を数えてみた。ちょっと前に「死蔵しているコマンドの数は?(slashdot,AWK Users JP)」というのが流行っていたので、それをマネしてみた。
使ってみたところ、Path::Classを使うとファイル操作をオブジェクト指向でできるよ!、という感じを受けた。そうか、オブジェクト指向がモダンなのか。
使い方
$ perl all-command.pl $path | wc -l 3486
ソースコード
#! /usr/bin/perl # -*- mode:perl; coding:utf-8 -*- # # all-command.pl - # # Copyright(C) 2009 by mzp # Author: MIZUNO Hiroki / mzpppp at gmail dot com # http://howdyworld.org # # Timestamp: 2009/02/16 08:05:06 # # This program is free software; you can redistribute it and/or # modify it under MIT Lincence. # use strict; use warnings; use Path::Class; use Data::Dumper; my @dir = map { -e $_ ? dir $_ : () } @ARGV; for my $dir (@dir) { for my $file ($dir->children){ if(!$file->is_dir && $file->stat && $file->stat->mode & 0111) { print $file->stringify,"\n"; } } }