2012年4月27日金曜日

開発環境

『続・初めてのPerl 改訂版』(Randal L. Schwartz, brian d foy, Tom Phoenix 著、伊藤 直也田中 慎司吉川 英興 監訳、株式会社ロングテール/長尾 高弘 訳、オライリー・ジャパン、2006年、ISBN4-87311-305-9) の9章(リファレンスを使った実践的なテクニック), 9.9(練習問題)1を解いてみる。

1.

やり方の1つ。(「やり方は何通りもある」(TIMTOWTDI(There Is More Than One Way To Do It.)))

コード(TextWrangler)

#!/usr/bin/env perl
use strict;
use warnings;

my @list = glob "/bin/*";
my @sorted = 
  map $_->[0],
  sort { $a->[1] <=> $b->[1] }
  map [$_, -s $_],
  @list;

for(@list){
  print -s $_, ": $_\n";
}
print "ソート後\n";
for(@sorted){
  print -s $_,  ": $_\n";
}

入出力結果(Terminal)

$ ./sample.pl
43120: /bin/[
1371648: /bin/bash
44192: /bin/cat
62768: /bin/chmod
57808: /bin/cp
772992: /bin/csh
57408: /bin/date
61216: /bin/dd
52432: /bin/df
34672: /bin/domainname
34608: /bin/echo
122000: /bin/ed
43808: /bin/expr
34720: /bin/hostname
35088: /bin/kill
2180736: /bin/ksh
167408: /bin/launchctl
39600: /bin/link
39600: /bin/ln
80752: /bin/ls
35072: /bin/mkdir
44848: /bin/mv
243104: /bin/pax
95840: /bin/ps
34704: /bin/pwd
66368: /bin/rcp
44528: /bin/rm
34624: /bin/rmdir
1371712: /bin/sh
34688: /bin/sleep
64976: /bin/stty
34288: /bin/sync
772992: /bin/tcsh
43120: /bin/test
44528: /bin/unlink
34576: /bin/wait4path
1103984: /bin/zsh
ソート後
34288: /bin/sync
34576: /bin/wait4path
34608: /bin/echo
34624: /bin/rmdir
34672: /bin/domainname
34688: /bin/sleep
34704: /bin/pwd
34720: /bin/hostname
35072: /bin/mkdir
35088: /bin/kill
39600: /bin/link
39600: /bin/ln
43120: /bin/[
43120: /bin/test
43808: /bin/expr
44192: /bin/cat
44528: /bin/rm
44528: /bin/unlink
44848: /bin/mv
52432: /bin/df
57408: /bin/date
57808: /bin/cp
61216: /bin/dd
62768: /bin/chmod
64976: /bin/stty
66368: /bin/rcp
80752: /bin/ls
95840: /bin/ps
122000: /bin/ed
167408: /bin/launchctl
243104: /bin/pax
772992: /bin/csh
772992: /bin/tcsh
1103984: /bin/zsh
1371648: /bin/bash
1371712: /bin/sh
2180736: /bin/ksh
$

0 コメント:

コメントを投稿