2013年7月18日木曜日

開発環境

『初めてのPerl 第6版』(Randal L. Schwartz, Tom Phoenix, brian d foy 共著、近藤 嘉雪 訳、オライリー・ジャパン、2012年、ISBN978-4-87311-567-2)の6章(ハッシュ)の6.6(練習問題)3を解いてみる。

その他参考書籍

3.

コード(BBEdit)

sample.pl

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

my @keys = keys %ENV;
my $cols = 0;

for (@keys) {
    my $tmp = length $_;
    $cols = $tmp if $tmp > $cols;
}

for (@keys) {
    printf "%-${cols}s: %s\n", $_, $ENV{$_};
}

入出力結果(Terminal)

$ ./sample.pl
HOME                      : /Users/kamimura
DISPLAY                   : /tmp/launch-1IHO36/org.x:0
COMMAND_MODE              : unix2003
SSH_AUTH_SOCK             : /tmp/launch-3gEit1/Listeners
Apple_PubSub_Socket_Render: /tmp/launch-ac4XwR/Render
PWD                       : /Users/kamimura/Documents/perl
LANG                      : ja_JP.UTF-8
USER                      : kamimura
Apple_Ubiquity_Message    : /tmp/launch-zpEtax/Apple_Ubiquity_Message
LOGNAME                   : kamimura
__CF_USER_TEXT_ENCODING   : 0x1F5:0:0
SECURITYSESSIONID         : 186a5
TERM_PROGRAM              : Apple_Terminal
SHLVL                     : 1
OLDPWD                    : /Users/kamimura/Documents/scheme
_                         : ./sample.pl
TERM_PROGRAM_VERSION      : 303.2
TERM_SESSION_ID           : DB285E59-1D72-486A-B4CE-8ED06E51E544
PATH                      : /Users/kamimura/pear/bin/:/opt/local/bin:/opt/local/sbin:/usr/local/mysql/bin/:/Library/Frameworks/Python.framework/Versions/3.2/bin:/Library/Frameworks/Python.framework/Versions/Current/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/MacGPG2/bin
SHELL                     : /bin/bash
TMPDIR                    : /var/folders/1v/dvc2tljs2_z3zqn56g_29rl00000gn/T/
TERM                      : xterm-256color
$

ちなみにpython3.3の場合。

コード(BBEdit)

sample.py

#!/usr/bin/env python3.3
#-*- coding: utf-8 -*-

import os

ks = os.environ.keys()
cols = 0
for k in ks:
    tmp = len(k)
    if tmp > cols:
        cols = tmp

cols = str(cols)
for k in sorted(ks):
    print(("{0:" + cols + "}: {1}").format(k, os.environ[k]))

入出力結果(Terminal)

$ ./sample.py
Apple_PubSub_Socket_Render: /tmp/launch-ac4XwR/Render
Apple_Ubiquity_Message    : /tmp/launch-zpEtax/Apple_Ubiquity_Message
COMMAND_MODE              : unix2003
DISPLAY                   : /tmp/launch-1IHO36/org.x:0
HOME                      : /Users/kamimura
LANG                      : ja_JP.UTF-8
LOGNAME                   : kamimura
OLDPWD                    : /Users/kamimura/Documents/scheme
PATH                      : /Users/kamimura/pear/bin/:/opt/local/bin:/opt/local/sbin:/usr/local/mysql/bin/:/Library/Frameworks/Python.framework/Versions/3.2/bin:/Library/Frameworks/Python.framework/Versions/Current/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/MacGPG2/bin
PWD                       : /Users/kamimura/Documents/perl
SECURITYSESSIONID         : 186a5
SHELL                     : /bin/bash
SHLVL                     : 1
SSH_AUTH_SOCK             : /tmp/launch-3gEit1/Listeners
TERM                      : xterm-256color
TERM_PROGRAM              : Apple_Terminal
TERM_PROGRAM_VERSION      : 303.2
TERM_SESSION_ID           : DB285E59-1D72-486A-B4CE-8ED06E51E544
TMPDIR                    : /var/folders/1v/dvc2tljs2_z3zqn56g_29rl00000gn/T/
USER                      : kamimura
_                         : ./sample.py
__CF_USER_TEXT_ENCODING   : 0x1F5:0:0
__PYVENV_LAUNCHER__       : /opt/local/bin/python3.3
$

0 コメント:

コメントを投稿