ルモーリン
ホーム更新サービス雑談ランドナーコースガイド鉄ゲタ自転車Linuxリンク連絡先

ファイルを読み込みコメント行と空行以外を表示

こんなブログを見つけたので

[Perl] ファイルを読み込みコメント行と空行以外を表示
腕試しに自分ならどう書くかやってみました。

コード

できた。
#!/usr/bin/env perl -w

use utf8;
use strict;
use warnings;

use open IO => ":utf8";
use Encode::Argv;
use Encode::Locale;

binmode STDIN, ":encoding(console_in)";
binmode STDOUT, ":encoding(console_out)";
binmode STDERR, ":encoding(console_out)";

$| = 1;

$ARGV[0] or die "ファイルを指定していません\n";
open my $fh, "<", Encode::encode locale_fs => $ARGV[0] or die "ファイルを開けません $! '$ARGV[0]'\n";
while (<$fh>) {
	chomp;
	print "$_\n" if !/^\s*#/ && !/^\s*$/;
}
close $fh;

exit 0;

実行結果

Windows7(ActivePerl)とCentOS6.5(perlbrew)で同じでした。 終了コードは正常が0、異常は2でしたけれど常に2とは限らないらしい。
perl sample_38.pl sample_38.txt
hoge
    huga

perl sample_38.pl
ファイルを指定していません

perl sample_38.pl abc
ファイルを開けません No such file or directory 'abc'