概要

  • Linux/Windows共通に環境変数からコンソールの文字コードとホームディレクトリを設定する。

ソース

initConsole.pl

#!/usr/bin/perl
# Linux/Windows共通に環境変数からコンソールの文字コードとホームディレクトリを設定する

use strict;
use warnings;
use utf8;
use Encode;

( $ENV{'LANG'} || '' ) =~ /\.(.*)$/;	# ja_JP.UTF-8
my $charsetConsole	= $1 || 'CP932';
my $charsetFile		= 'UTF-8';

binmode( STDIN,  ":encoding($charsetConsole)" );
binmode( STDOUT, ":encoding($charsetConsole)" );
binmode( STDERR, ":encoding($charsetConsole)" );

my $home = $ENV{'HOME'} || $ENV{'USERPROFILE'};
$home =~ s#\\#/#g;

my $fileOut = $home . '/環境変数テスト.txt';

@ARGV = map{ decode( $charsetConsole, $_ ); } @ARGV;

print "$home\n$fileOut\n";
print join( "\n", @ARGV ) . "\n";

open( my $fhout, ">:encoding($charsetFile)", encode( $charsetConsole, $fileOut ) ) 
	or die( "$fileOut: " . decode( $charsetConsole, $! ) . "\n" );
print $fhout "テスト\n";
print $fhout join( "\n", @ARGV ) . "\n";
close( $fhout );

# EOF

リンク