開発環境
- OS X Lion - Apple(OS)
- BBEdit - Bare Bones Software, Inc.(Text Editor)
- Script言語:Perl
『初めてのPerl 第6版』(Randal L. Schwartz, Tom Phoenix, brian d foy 共著、近藤 嘉雪 訳、オライリー・ジャパン、2012年、ISBN978-4-87311-567-2) の10章(さまざまな制御構造)、10.11(練習問題)3を解いてみる。
その他参考書籍
3.
コード(BBEdit)
sample.pl
#!/usr/bin/env perl use strict; use warnings; use utf8; use 5.016; binmode STDIN, ':utf8'; binmode STDOUT, ':utf8'; # 値をもっていない環境変数、値が偽の環境変数をセット $ENV{UNDEFINED} = undef; $ENV{ZERO} = 0; $ENV{EMPTY} = ""; my $width = 0; for(keys %ENV){ $width = length $_ if length $_ > $width; } for(sort keys %ENV){ printf "%-${width}s %s\n", $_, $ENV{$_} // "undefined value"; }
入出力結果(Terminal)
$ ./sample.pl Apple_PubSub_Socket_Render /tmp/launch-VwRlmH/Render Apple_Ubiquity_Message /tmp/launch-miWe4t/Apple_Ubiquity_Message COMMAND_MODE unix2003 DISPLAY /tmp/launch-bSXkUp/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 186a5 SHELL /bin/bash SHLVL 1 SSH_AUTH_SOCK /tmp/launch-KNZ4YK/Listeners TERM xterm-256color TERM_PROGRAM Apple_Terminal TERM_PROGRAM_VERSION 303.2 TERM_SESSION_ID D1CFA66C-2350-4B76-938B-B73ADADC76E9 TMPDIR /var/folders/1v/dvc2tljs2_z3zqn56g_29rl00000gn/T/ UNDEFINED undefined value USER kamimura ZERO 0 _ ./sample.pl __CF_USER_TEXT_ENCODING 0x1F5:0:0 $
pythonの場合。
sample.py
コード(BBEdit)
#!/usr/bin/env python3.3 #-*- coding: utf-8 -*- import os environ = os.environ.copy() environ["NONE"] = None environ["ZERO"] = 0 environ["EMPTY"] = "" strs = ["NONE", "ZERO", "EMPTY"] width = 0 for x in strs: if len(x) > width: width = len(x) for x in strs: v = "undefined value" if environ[x] == None else environ[x] print(("{0:" + str(width) + "} {1}").format(x, v)) print("偽の値も変換する場合との比較") for x in strs: v = "undefined value" if not environ[x] else environ[x] print(("{0:" + str(width) + "} {1}").format(x, v))
入出力結果(Terminal)
$ ./sample.py NONE undefined value ZERO 0 EMPTY 偽の値も変換する場合との比較 NONE undefined value ZERO undefined value EMPTY undefined value $
0 コメント:
コメントを投稿