2013年3月27日水曜日

開発環境

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

その他参考書籍

3.

コード(BBEdit)

sample.pl

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

$ENV{UNDEFINED} = undef;
$ENV{ZERO} = 0;
$ENV{EMPTY} = '';

my @keys = sort keys %ENV;
my $cols = 0;
for  (@keys) {
    $cols = length $_ if length $_ > $cols;
}
for  (@keys) {
    printf "%-${cols}s %s\n", $_, $ENV{$_} // 'undefined value';
}

入出力結果(Terminal)

$ ./sample.pl
Apple_PubSub_Socket_Render /tmp/launch-KLmHoj/Render
Apple_Ubiquity_Message     /tmp/launch-1CDVv1/Apple_Ubiquity_Message
COMMAND_MODE               unix2003
DEBUG                      0
DISPLAY                    /tmp/launch-eUDtQM/org.x:0
EMPTY                      
HOME                       /Users/kamimura
LANG                       ja_JP.UTF-8
LOGNAME                    kamimura
OLDPWD                     /Users/kamimura/documents/python
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          186a6
SHELL                      /bin/bash
SHLVL                      1
SSH_AUTH_SOCK              /tmp/launch-TsG4aL/Listeners
TERM                       xterm-256color
TERM_PROGRAM               Apple_Terminal
TERM_PROGRAM_VERSION       303.2
TERM_SESSION_ID            B4544D29-8B5A-4F28-87AD-1F8F208F7F85
TMPDIR                     /var/folders/1v/dvc2tljs2_z3zqn56g_29rl00000gn/T/
UNDEFINED                  undefined value
USER                       kamimura
ZERO                       0
_                          ./sample.pl
__CF_USER_TEXT_ENCODING    0x1F5:0:0
$

python3.3の場合。

コード(BBEdit)

sample.py

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

import os, random, re

# os.environの値は文字列じゃないとTypeErrorが発生するみたい
os.environ["NONE"] = str(None)
os.environ['ZERO'] = str(0)
os.environ['EMPTY'] = ""
cols = 0

for x in os.environ:
    if len(x) > cols:
        cols = len(x)

for k, v in os.environ.items():
    print(("{0:" + str(cols) + "} {1}").format(k, v))

入出力結果(Terminal)

$ ./sample.py
NONE                       None
COMMAND_MODE               unix2003
EMPTY                      
USER                       kamimura
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
TERM                       xterm-256color
TERM_PROGRAM_VERSION       303.2
Apple_Ubiquity_Message     /tmp/launch-1CDVv1/Apple_Ubiquity_Message
TMPDIR                     /var/folders/1v/dvc2tljs2_z3zqn56g_29rl00000gn/T/
TERM_PROGRAM               Apple_Terminal
HOME                       /Users/kamimura
LANG                       ja_JP.UTF-8
OLDPWD                     /Users/kamimura/documents/python
SHELL                      /bin/bash
_                          ./sample.py
ZERO                       0
LOGNAME                    kamimura
TERM_SESSION_ID            B4544D29-8B5A-4F28-87AD-1F8F208F7F85
SHLVL                      1
DISPLAY                    /tmp/launch-eUDtQM/org.x:0
__PYVENV_LAUNCHER__        /opt/local/bin/python3.3
SSH_AUTH_SOCK              /tmp/launch-TsG4aL/Listeners
DEBUG                      0
__CF_USER_TEXT_ENCODING    0x1F5:0:0
PWD                        /Users/kamimura/documents/perl
SECURITYSESSIONID          186a6
Apple_PubSub_Socket_Render /tmp/launch-KLmHoj/Render
$

0 コメント:

コメントを投稿