Skip to content

Instantly share code, notes, and snippets.

@igeta
Last active December 21, 2015 11:08
Show Gist options
  • Save igeta/6296383 to your computer and use it in GitHub Desktop.
Save igeta/6296383 to your computer and use it in GitHub Desktop.
Windows で Perl 使うときの取っ掛かりのメモ。

Strawberry Perl をインストール。インストール先はデフォルトとする。

http://strawberryperl.com/

毎度おなじみインストール確認。

perl -v

#!usr/bin/perl の shebang で動作するようにジャンクションを張る。

set perldir=C:\strawberry\perl
mklink /j C:\usr %perldir%

Hello world スクリプト。ファイル名は hello.pl で。

#!usr/bin/perl

print "Hello, world!\n";

perl 叩いて実行。-wc オプションを付けると文法チェックができる。

perl -wc hello.pl
perl hello.pl

CPAN モジュールを入れる。取り急ぎ Path::Class を。

> perl -MCPAN -e shell

cpan> install Path::Class

以下、コード テンプレート。

#!usr/bin/perl

use strict;
use warnings;
use utf8;
use Encode;
use Encode::Locale;
use Path::Class;

#use FindBin;
#use lib "$FindBin::Bin/lib/";

use open IO => ':utf8';
binmode STDIN  => ':encoding(console_in)';
binmode STDOUT => ':encoding(console_out)';
binmode STDERR => ':encoding(console_out)';
Encode::Locale::decode_argv;

my $utf8   = find_encoding('utf8');
my $locale = find_encoding('locale');

以下コードをテンプレに続けて書いてお試し。文字コードのケアめんどい。

{
    my $txt = file('utf8.txt');     # utf-8 なテキスト
    my $reader = $txt->openr();
    while (my $line = $reader->getline()) {
        print $utf8->decode($line);
    }
}

print "----\n";

{
    my $txt = file('cp932.txt');    # cp932 なテキスト
    my $reader = $txt->openr();
    while (my $line = $reader->getline()) {
        print $locale->decode($line);
    }
}

あと Getopt::Compact も入れときたいなーとか、Data::Dumper か YAML 置いといてもいいかなーとかあるけど、それはそれとして。

言い出したらきりがないし。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment