2019年4月8日月曜日

開発環境

初めてのPerl 第7版 (Randal L. Schwartz(著)brian d foy(著)Tom Phoenix(著)近藤 嘉雪(翻訳)嶋田 健志(翻訳)オライリージャパン)の6章(ハッシュ)、6.6(練習問題)3の解答を求めてみる。

コード

#!/usr/bin/env perl
use strict;
use warnings;
use utf8;
use autodie;
use v5.18;

# Wide character in print at ... line ...が出力されないようにに指定
# 付録C(Unicode入門)、C.4(ファンシーな文字)、C.4.2(さらにファンシーな文字)より
# WindowsとmacOSのどちらでも標準入力、標準出力、標準エラーについてちゃんと動くように設定
use Encode::Locale;
binmode STDIN, ':encoding(console_in)';
binmode STDOUT, ':encoding(console_out)';
binmode STDERR, ':encoding(console_out)';

say '3.';

my $cols = 0;

for (keys %ENV) {
    if (length $_ > $cols) {
        $cols = length $_;
    }
}

$cols++;
for (sort keys %ENV) {
    printf "%-${cols}s\t%s\n", $_, $ENV{$_};
}
            

入出力結果(cmd(コマンドプロンプト)、Terminal)

C:\Users\...>perl sample3.pl
3.
ALLUSERSPROFILE            C:\ProgramData
APPDATA                    C:\Users\kamimura\AppData\Roaming
COMMONPROGRAMFILES         C:\Program Files\Common Files
COMMONPROGRAMFILES(X86)    C:\Program Files (x86)\Common Files
COMMONPROGRAMW6432         C:\Program Files\Common Files
COMPUTERNAME               THINKPAD
COMSPEC                    C:\WINDOWS\system32\cmd.exe
CONFIGSETROOT              C:\WINDOWS\ConfigSetRoot
DRIVERDATA                 C:\Windows\System32\Drivers\DriverData
GOPATH                     C:\Users\kamimura\go
GOROOT                     C:\Go\
HOMEDRIVE                  C:
HOMEPATH                   \Users\kamimura
LOCALAPPDATA               C:\Users\kamimura\AppData\Local
LOGONSERVER                \\THINKPAD
NUMBER_OF_PROCESSORS       4
ONEDRIVE                   C:\Users\kamimura\OneDrive
ONEDRIVECONSUMER           C:\Users\kamimura\OneDrive
OS                         Windows_NT
PATH                       C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\dotnet\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files\Git\cmd;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Strawberry\c\bin;C:\Strawberry\perl\site\bin;C:\Strawberry\perl\bin;C:\Go\bin;C:\Users\kamimura\AppData\Local\Programs\Python\Python37\Scripts\;C:\Users\kamimura\AppData\Local\Programs\Python\Python37\;C:\Users\kamimura\AppData\Local\Microsoft\WindowsApps;;C:\Users\kamimura\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\kamimura\go\bin;C:\Users\kamimura\.dotnet\tools;C:\Users\kamimura\AppData\Local\Microsoft\WindowsApps;C:\Users\kamimura\go\bin
PATHEXT                    .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
PROCESSOR_ARCHITECTURE     AMD64
PROCESSOR_IDENTIFIER       Intel64 Family 6 Model 142 Stepping 9, GenuineIntel
PROCESSOR_LEVEL            6
PROCESSOR_REVISION         8e09
PROGRAMDATA                C:\ProgramData
PROGRAMFILES               C:\Program Files
PROGRAMFILES(X86)          C:\Program Files (x86)
PROGRAMW6432               C:\Program Files
PROMPT                     $P$G
PSMODULEPATH               C:\Program Files\WindowsPowerShell\Modules;C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules
PUBLIC                     C:\Users\Public
SESSIONNAME                Console
SYSTEMDRIVE                C:
SYSTEMROOT                 C:\WINDOWS
TEMP                       C:\Users\kamimura\AppData\Local\Temp
TMP                        C:\Users\kamimura\AppData\Local\Temp
USERDOMAIN                 THINKPAD
USERDOMAIN_ROAMINGPROFILE  THINKPAD
USERNAME                   kamimura
USERPROFILE                C:\Users\kamimura
WINDIR                     C:\WINDOWS

C:\Users\...>

0 コメント:

コメントを投稿