2013年9月15日日曜日

開発環境

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

その他参考書籍

1.

コード(BBEdit)

sample.pl

#!/usr/bin/env perl
use strict;
use warnings;
use 5.016;
use utf8;
binmode STDOUT, ':utf8';
binmode STDIN, ':utf8';
binmode STDERR, ':utf8';

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

say join "\n", @sorted;

入出力結果(Terminal)

$ ./sample.pl
/bin/sync
/bin/wait4path
/bin/echo
/bin/rmdir
/bin/domainname
/bin/sleep
/bin/pwd
/bin/hostname
/bin/mkdir
/bin/kill
/bin/link
/bin/ln
/bin/[
/bin/test
/bin/expr
/bin/cat
/bin/rm
/bin/unlink
/bin/mv
/bin/df
/bin/date
/bin/cp
/bin/dd
/bin/chmod
/bin/stty
/bin/rcp
/bin/ls
/bin/ps
/bin/ed
/bin/launchctl
/bin/pax
/bin/csh
/bin/tcsh
/bin/zsh
/bin/bash
/bin/sh
/bin/ksh
$

ちなみにpython3.3の場合。

コード(BBEdit)

sample.py

#!/usr/bin/env python3.3
## Copyright (C) 2013 by kamimura
#-*- coding: utf-8 -*-

import os
import glob

result = map(
    lambda x:x[0],
    sorted(
        map(lambda x: [x, os.path.getsize(x)],
            glob.glob('/bin/*')),
        key=lambda x: x[1]
    )
)

print('\n'.join(result))

入出力結果(Terminal)

$ ./sample.py
/bin/sync
/bin/wait4path
/bin/echo
/bin/rmdir
/bin/domainname
/bin/sleep
/bin/pwd
/bin/hostname
/bin/mkdir
/bin/kill
/bin/link
/bin/ln
/bin/[
/bin/test
/bin/expr
/bin/cat
/bin/rm
/bin/unlink
/bin/mv
/bin/df
/bin/date
/bin/cp
/bin/dd
/bin/chmod
/bin/stty
/bin/rcp
/bin/ls
/bin/ps
/bin/ed
/bin/launchctl
/bin/pax
/bin/csh
/bin/tcsh
/bin/zsh
/bin/bash
/bin/sh
/bin/ksh
$

0 コメント:

コメントを投稿